webpack 有三种hash模式
hash
是整个项目的hash,只有项目中有其中任何一个文件改变,都会导致 hash 值的改变,不利于 缓存
chunkhash
chunkhash的出现正是为了解决hash 不利于缓存的问题 根据一个入口点,然后分析依赖,最终生成一个chunk文件,好处就是如果不在入口点依赖的文件里面出现,他们就不会受到影响。 但是对于 css 文件不友好,如果一个 css 文件在 index 文件中被引入,如果此时index中引入的其它模块改变了,那么最终css生成的chunkhash也会和上一次不一样
contenthash
contenthash 就是只能当文件的内容发生改变,才会触发 contenthash 值的改变
最佳实践
在生产环境中,对于 output 中输出的文件的hash 建议使用 chunkhash。 对于 css 这种文件建议使用 contenthash。