Skip to content

hash,contenthash,chunkhash的区别 #29

@JCHappytime

Description

@JCHappytime

hash

hash是跟整个项目构建相关,只要项目里面有文件修改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值。

contenthash

使用webpack编译代码时,我们可以在js文件里面引用css文件。所以这2个文件应该共用相同的chunkhash值,但是有个问题:如果js更改了代码,css文件就算内容没有任何改变,由于该模块发生了改变,这导致CSS会重复构建,这个时候,我们可以使用 extra-text-webpack-plugin 里面的contenthash值,保证即使CSS文件所处的模块里其他文件内容改变,只要CSS文件内容不变,那么就不会重复构建。

chunkhash

采用hash计算的话,每一次构建后生成的哈希值都不一样,即使文件内容压根没有改变。这样子时没办法实现缓存效果,我们需要换另一种hash值计算方法,也就是chunkhash。它会根据不同的入口文件(Entry)进行依赖文件解析、构建对应的chunk,生成对应的哈希值,那么只要我们不改动公共库代码,就可以保证其哈希值不会受影响。

Metadata

Metadata

Assignees

No one assigned

    Labels

    webpackwebpack工程化常见问题

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions