一、[hash]
hash是跟整个项目的构建相关,只要项目里有文件更改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值;
缺点是,只有一个文件修改的话,其他文件的缓存就不生效了
二、[chunkHash]
根据不同的入口文件(Entry)进行依赖文件解析、构建对应的chunk,生成对应的哈希值。我们在生产环境里把一些[公共库]和[程序入口文件]区分开,单独打包构建,接着我们采用chunkhash的方式生成哈希值,那么只要我们不改动公共库的代码,就可以保证其哈希值不会受影响。主要就是,在生成多个chuank的时候,只有一个chunk 内的代码发生改变时,不会影响其他的chunk的hash。
缺点:被js引用的css与js共用一个chunkHash值,所以在只有js修改的情况下,css的Hash值也会跟着改变。
三、[contentHash]
当使用contenthash时,如果修改js文件,css文件的hash不会变化,但是修改js的文件,css文件的hash也会变化
参考文献: