Webpack第三天

131 阅读1分钟

文件指纹

- 主要用于版本管理,当内容修改后,只更新修改的部分

常见的指纹

- 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页面,如果有多个,要写多次