作用
webpack是node
的第三方模块包,用于代码打包
-
前端工程化的解决方案
-
解决js和css兼容性问题
-
压缩合并html/js/css代码
使用
entry
入口
webpack开始打包的文件,入口文件
output
出口
webpack打包后输出的文件夹、文件名
module
模块
一个模块对应一个文件,从入口文件开始查找
Compiler
编译器
webpack启动后创建的编译器对象
chunk
代码块
由多个模块组成,用于代码的分隔和合并
loader
加载器
- 进行文件处理、转换(编译或压缩代码),是模块的解析规则
- 每个loader都只完成一个职责,只需要完成一种转换
- 在模块加载时预处理文件,运行在文件打包前
- 常见loader:
less-loader
,css-loader
,url-loader
plugins
插件
- 扩展webpack的功能,如优化打包、压缩代码、重新定义环境变量…
- 可以在webpack生命周期节点上添加监听等功能
- 整个编译周期都运行
- 常见plugin:
CleanWebpackPlugin
流程
-
初始化配置参数
合并
shell
和webpack.config.js
中的配置参数 -
开始编译
初始化
Compiler
对象,注册插件,执行Compiler
的run
方法开始编译 -
确定入口
找出入口文件
-
编译模块
从入口文件出发,调用
loader
编译,递归该模块的依赖模块进行编译 -
完成编译并输出
将编译完的文件结果根据
entry
配置生成chunk
-
输出完成
输出
chunk
到文件系统