Hash、ContentHash、ChunkHash
- 在我们给打包的文件进行命名的时候,会使用placeholder,placeholder中有几个属性比较相似:
- hash、chunkhash、contenthash
- hash本身是通过MD4的散列函数处理后,生成一个128位的hash值(32个十六进制);
- hash值的生成和整个项目有关系:
- 比如我们现在有两个入口
index.js
和main.js
; - 它们分别会输出到不同的
bundle
文件中,并且在文件名称中我们有使用hash
; - 这个时候,如果修改了
index.js
文件中的内容,那么hash
会发生变化; - 那就意味着
两个文件的名称
都会发生变化;
- 比如我们现在有两个入口
chunkhash
可以有效的解决上面的问题,它会根据不同的入口进行解析来生成hash值:- 比如我们修改了index.js,那么main.js的chunkhash是不会发生改变的;
contenthash
表示生成的文件hash
名称,只和内容有关系:- 比如我们的
index.js
,引入了一个style.css
,style.css
有被抽取到一个独立的css文件中; - 这个
css文件在命名
时,如果我们使用的是chunkhash
; - 那么当
index.js
文件的内容发生变化时,css文件的名
也会发生变化; - 这个时候我们可以使用contenthash;
- 比如我们的