webpack
应该使用哪一个模块,来做为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。默认是将src/index.js
做为入口文件dist
文件夹,默认的打包文件名称是 main.js
loader
能够用于对模块的源代码进行转换,将全部类型的文件转换为 webpack
可以处理的有效模块,而后你就能够利用 webpack
的打包能力,对它们进行处理。例如 css
文件,能够将css
文件也当作是一个模块,咱们是经过import
来加载这个模块的;在加载这个模块时,webpack
其实并不知道如何对其进行加载,咱们必须制定对应的loader
来完成这个功能Plugin
能够用于执行更加普遍的任务,好比打包优化、资源管理、环境变量注入等entry
以及 output
两个参数,配置的方法也有两种
webpack --entry ./src/main.js --output-path ./build --output-filename build.js
index.js
文件改为 main.js
没有配置入口文件 webpack
默认会读取 webpack.config.js
文件中的配置,若是须要自定义文件命令中添加参数配置便可配置规则以下配置方式:loader 用于对模块的源代码进行转换。loader 可使你在
import
或 "load(加载)" 模块时预处理文件。所以,loader 相似于其余构建工具中“任务(task)”,并提供了处理前端构建步骤的得力方式。loader 能够将文件从不一样的语言(如 TypeScript)转换为 JavaScript 或将内联图像转换为 data URL。loader 甚至容许你直接在 JavaScript 模块中import
CSS 文件!css
module.rules
是个数组而且容许咱们配置多个 loader
具体配置以下:
rules
是个数据而后数组中是每一个 rule对象,对象中有多个属性rule
对象中的 test
属性,用于对 resource
(资源)进行匹配的,一般会设置成正则表达式;rule
对象中的 use
属性 对应的值是个数组
loader
必须有一个 loader
属性,对应的值是一个字符串;options
可选的属性,值是一个字符串或者对象,值会被传入到loader
中;options
课直接写成 ['css-loader']
loader
属性,其实就是 use的缩写,若是只用到一个 loader
而且没有 option
的时候可使用缩写形式css-loader
对应命令以下:yarn add css-loader -D
css-loader
而后此时引入 css
文件会报出以下错误: webpack
并不知道如何对其进行加载,因此提示须要制定对应的loader
此时须要配置 css-loader
因此他的做用就是帮助 webpack
读取 css
文件的 loader
,安装后配置方法有两种
import
语句中显式指定 loader
。import "css-loader!../css/index.css";
loader
webpack
就能加载 css
文件了,打包也就成功了css-loader
的用法,最终成功打包,可是运行时发现样式并无生效以下图: css-loader
仅仅是对 css
文件进行解析,并不会将解析后的 css
插入到页面中,因此若是要让 css
文件生效,就须要插入这个动做,此时就可使用 style-loader
进行插入动做,首先第一步同上须要安装 style-loader
,一样的仅仅只是开发使用,因此只须要安装开发依赖,命令以下:yarn add style-loader -D
配置方式和 css-loader
相同以下图: loader
的执行顺序是从右向左(或者说从下到上,或者说从后到前的),因此咱们须要将style-loader
写到css-loader
的前面;不然会报错(应为要先将 css
加载出来以后再插入,若是没加载出来直接插入确定是不知道插入什么因此打包会报错),css
,因此就会有 less
、sass
等文件,可是这些预处理文件 webpack
是不知道怎么加载的,一样的一些动态代码的写法浏览器也不支持的,因此就须要将 less
文件先转成 css
文件而后按照 css
文件的打包流程打包便可 这里可使用 less
转换工具进行转换安装指令以下: yarn add less -D
npx less ./src/style/style.less > ./src/style/style1.css
css
多了之后每一个文件都这样执行如下很影响效率,此时就可使用 less-loader
,让他来帮咱们转换less-loader
命令以下:yarn add less-loader -D
而后在配置文件中配置browserslist
是在不一样前端工具直接共用目标浏览器和 node
版本的配置工具,使用到 browserslist
的前端工具备:
caniuse-lite
的工具,这个工具的数据来自于caniuse
的网站上;这些工具会根据咱们的配置来获取相关的浏览器信息,以方便决定是否须要进行兼容性的支持,具体 browserslist
编写规则等能够参考 github.com/browserslis…该网站,里面有详细的描述。 配置方式:
在package.json中配置 前端
单独的一个配置文件.browserslistrc文件; node
若是没有配置 browserslist
会有个默认的配置: webpack
PostCSS
主要是一个使用 js
来转换样式的工具,这个工具能够帮助咱们进行一些 CSS
的转换和适配,好比自动添加浏览器前缀,css
样式重置;可是实现这些功能都须要相应的一些插件。
postcss
工具以及命令工具 postcss-cli
yarn add postcss postcss-cli -D
autoprefixer
后来代码实操postcss
给代码添加前缀的一个插件
yarn add autoprefixer -D
npx postcss --use autoprefixer -o ./src/style/style-new.css ./src/style/style.css
postcss-loader
的做用相似于 less-loader
,正式开发中有不少 css
文件咱们不可能每一个文件都想上文中那样每一个都用指令转换,因此此时 webpack
中使用 postcss
就能够借助 postcss-loader
来处理
postcss-loader
yarn add postcss-loader -D
postcss-loader
package.json
中配置postcss.config.js
或者 postcss.config.cjs
导出一个对象的 CommonJS 模块(推荐)postcss-loader
通常都不会使用 autoprefixer
插件而是直接使用 postcss-preset-env
应为其内置就有自动帮助咱们添加前缀同时它能够帮助咱们将一些现代的CSS
特性,转成大多数浏览器认识的CSS,而且会根据目标浏览器或者运行时环境添加所需的polyfill
安装 postcss-preset-env
yarn add postcss-preset-env -D
git
配置 同
autoprefixer
的配置方式github
举例 添加一个 HEXA
的颜色值,若是仅仅是使用 autoprefixer
插件效果如图: 使用
postcss-preset-env
插件: 会转成浏览器都兼容的
rgba
格式web