文件指纹
- 主要用于版本管理,当内容修改后,只更新修改的部分
常见的指纹
- Hash:整个项目的hash,只要项目中有文件修改就会更改整个项目的hash
- Chunkhash:webpack打包生成的chunk的hash,不同的entry会生成不同的chunkhash
- Contenthash:文件内容hash,内容不变,contenthash不变
常见的用法
- CSS文件:设置output中的filename为:[name][contenthash:8].css
- 使用css-loader将css文件转换为commonjs对象
- 使用style-loader将该对象插入style放到head标签中,不是独立文件不可设置hash
- 使用mini-css-extract-plugin将该对象提取出来,是独立文件可设置hash
- 设置插件的filename为 [name][contenthash:8].css,改用插件的loader进行生成
- JS文件:设置output中的filename为:[name][chunkhash:8].js
- 图片文件:设置file-loader中的name为 [name][hash:8].[ext]
文件压缩
- CSS文件压缩:optimize-css-assets-plugin 插件
- html文件压缩:html-webpack-plugin 插件
- template:要打包的html文件的位置
- inject:自动注入打包完成的js,css等
- 一个plugin对应一个html页面,如果有多个,要写多次