webpack之文件指纹如何生成

随声附和 提交于 2020-01-14 09:14:13

·

  • Hash: 和整个项目的构建相关,只要项目文件有修改,整个项目构建的hash值就会更改
  • Chunkhash(JS文件): 和webpack打包的chunk有关,不同的entry会生成不同的chunkhash值
  • Contenthash(CSS文件):根据文件内容来定义hash,文件内容不变,则contenthash不变
  • 图片的文件指纹设置使用[hash]

设置MiniCssExtratPlugin的filename,使用[contenthash]
如果不使用MiniCssExtratPlugin正常情况下我们使用了style-load或css-load则会把样式提取出来放入到header的style里面,并没有独立的文件,所以使用MiniCssExtratPlugin提取成独立的文件

plugins: [
new MiniCssExtractPlugin({
	filename: `[name]_[contenthash:8].css`
})
]
module.exports = {
  entry: {
    index: './src/index.js',
    search: './src/search.js'
  },
  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name]_[chunkhash:8].js' // chunkhash:8 取MD5取8位
  },
  module: {
    rules: [
     {
        test: /\.(png|svg|jpg|gif|jpeg)$/,
        use: [{
            loader: 'file-loader',
            options: {
              name: 'img/[name][hash:8].[ext]',
            }
          }]
      },
  ]
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!