首页 > 解决方案 > 为什么 webpack 中的 [contenthash] 不同?

问题描述

webpack.config.js

module.exports = {
entry: {
    app: './src/main.js',
},
output: {
    path: path.resolve(__dirname, './dist/js/'),
    publicPath: '/js/',
    filename: '[name].js',
    chunkFilename: 'chunk/[contenthash:32].js',  // use contenthash here
    hashDigestLength:32,
},

产品一个文件28024a27808de6fae79a1f5596584d3e.js,但实际上内容哈希是9c757e82e0a41d8e51228532a109a0d7

在此处输入图像描述

标签: webpackwebpack-4

解决方案


webpack使用旧的 md4哈希算法。它还在文件的base64编码版本上运行它。

最重要的是,这是在文件的非缩小版本上完成的。因此,您无法通过比较文件名中的哈希值和最终缩小文件的实际 md4 哈希值来检查 md4 值。他们永远不会匹配。

来源:https ://webpack.js.org/plugins/hashed-module-ids-plugin/


推荐阅读