初始化项目,安装webpack
webpack.config.js配置
entry
output
loader
plugins
常用的plugins
Name |
Description |
CommonsChunkPlugin |
将chunks相同的模块代码提取成公共js |
CleanWebpackPlugin |
清理构建目录 |
MiniCssExtractPlugin |
将CSS从bundle文件里提取成独立的CSS文件 |
CopyWebpackPlugin |
将文件或目录拷贝到构建目录 |
HtmlWebpackPlugin |
创建html文件以承载输出的bundle |
UglifyjsWebpackPlugin |
压缩js |
解析ES6
安装
配置
解析Less
解析图片
可使用url-loader将小图片用base64引入。
文件监听
热更新
命令
也可以使用webpack-dev-middleware实现热更新。
命令
文件指纹
- hash: 和整个项目的构建相关,只要项目文件有修改,整个项目的hash值就会更改
- chunkhash: 和打包的chunk相关,不同entry会生成不同的chunkhash
- contenthash: 由文件内容生成
JS文件
CSS文件
图片、字体
代码压缩
JS文件
webpack4中已经内置并默认开启了uglifyjs-webpack-plugin,用于JS文件的压缩。
CSS文件
HTML文件
通过设置html-webpack-plugin的压缩参数实现。
清理构建目录
补齐CSS3前缀
安装
px转换成rem
在html文件中添加根元素font-size自动计算方法。
资源内联
通过raw-loader内联HTML和JS。
使用style-loader或html-inline-css-webpack-plugin内联CSS文件。
多页面应用
利用glob动态获取entry并设置html-webpack-plugin。
待续 ~