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

    1. module.exports = {
    2. configureWebpack: (config)=>{
    3. const plugins = config.plugins;
    4. for(let i=0;i<plugins.length;i++){
    5. if(plugins[i] instanceof webpack.HashedModuleIdsPlugin){
    6. plugins.splice(i,1)
    7. }else if(plugins[i] instanceof webpack.NamedChunksPlugin){
    8. plugins.splice(i,1)
    9. }
    10. }
    11. plugins.push(new webpack.HashedModuleIdsPlugin({//生成稳定的模块id
    12. hashDigest: 'hex',
    13. hashDigestLength:8
    14. }));
    15. plugins.push(new webpack.NamedChunksPlugin((chunk) => {//生成稳定的chunk id
    16. if (chunk.name) {
    17. return chunk.name;
    18. }
    19. return "W"+(++id)
    20. }));
    21. return void 0
    22. }
    23. };

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

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