Skip to content

webpack的hash引发的问题

jerryzhang edited this page Jan 31, 2023 · 1 revision

title: webpack的hash引发的问题 url: https://www.yuque.com/endday/blog/uzayee

https://webpack.docschina.org/configuration/optimization/#optimizationmoduleids https://blog.csdn.net/weixin_44800563/article/details/119735888 https://github.com/jiangjiu/blog-md/issues/49 https://github.com/HexMox/blog/issues/6 手摸手,带你用合理的姿势使用webpack4(上)

在v4.16.0版本中废除了optimization.occurrenceOrder、optimization.namedChunks、optimization.hashedModuleIds、optimization.namedModules 这几个配置项,替换成了optimization.moduleIds 和 optimization.chunkIds,但文档完中全没有任何体现,所以你在新版本中还按照文档那样配置其实是没有任何效果的。

https://github.com/webpack/webpack/issues/9520

webpack4 完整配置json

hash类型 区别
hash hash是根据整个项目构建,只要项目里有文件更改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值
chunkhash chunkhash根据不同的入口文件(Entry)进行依赖文件解析、构建对应的代码块(chunk),生成对应的哈希值,某文件变化时只有该文件对应代码块(chunk)的hash会变化
contentHash 每一个代码块(chunk)中的js和css输出文件都会独立生成一个hash,当某一个代码块(chunk)中的js源文件被修改时,只有该代码块(chunk)输出的js文件的hash会发生变化

———————————————— 版权声明:本文为CSDN博主「Phil01」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_33594101/article/details/107981866

module.exports = {
    configureWebpack: (config)=>{
        const plugins = config.plugins;
        for(let i=0;i<plugins.length;i++){
            if(plugins[i] instanceof webpack.HashedModuleIdsPlugin){
                plugins.splice(i,1)
            }else if(plugins[i] instanceof webpack.NamedChunksPlugin){
                plugins.splice(i,1)
            }
        }
        plugins.push(new webpack.HashedModuleIdsPlugin({//生成稳定的模块id
            hashDigest: 'hex',
            hashDigestLength:8
        }));
        plugins.push(new webpack.NamedChunksPlugin((chunk) => {//生成稳定的chunk id
            if (chunk.name) {
                return chunk.name;
            }
            return "W"+(++id)
        }));
        return  void 0
    }
};

https://blog.csdn.net/qq_29456953/article/details/106431477

还比如在v4.16.0版本中废除了optimization.occurrenceOrder、optimization.namedChunks、optimization.hashedModuleIds、optimization.namedModules 这几个配置项,替换成了optimization.moduleIds 和 optimization.chunkIds,但文档完中全没有任何体现,所以你在新版本中还按照文档那样配置其实是没有任何效果的。

Clone this wiki locally