Skip to content

hash & chunkhash & contenthash区别

示例

js
// ...
output: {
    path: path.resolve(__dirname, '/dist'),
    filename: 'js/[name].[hash].js',
    chunkFilename: '[name].[contenthash].js'  // contentHash 不区分大小写
}
// ...

hash

跟整个项目的构建相关,只要项目里有文件更改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值. 缺点:改变一个文件全部都会改变,没办法使用缓存效果。

chunkhash

模块的hash值,内容更改也会更改。 缺点:在main.js中引入xxx.css,打包后的hash一样。例如更改main.js的内容,则打包后xxx.css的hash会随着main.js一起更改掉

contenthash

根据文件的内容计算hash,最优解。