【问题标题】:How to use ChunkGraph API in webpack 5. splitchunks.cacheGroup?如何在 webpack 5. splitchunks.cacheGroup 中使用 ChunkGraph API?
【发布时间】:2026-01-28 10:10:01
【问题描述】:

在 webpack4 中:

splitChunks: {  
  cacheGroups: {
    a: {
      test: (module, chunks)=>{
        chunks.every(( chunk ) => { chunk.name === 'xxx' })
      }
    }
  },
}

在 webpack 5 中:

splitChunks: {
  cacheGroups: {
    a: {
      test: (module, {moduleGraph, chunkGraph})=>{
        // how to use chunkGraph? 
        // Which is the equivalent of `chunks.eveny(chunk => chunk.name === 'xxx')`
      }
    }
  },
}

如何使用 ChunkGraph API?我尝试用这种方式,

return chunkGraph.getChunkModules(module).every((chunk) => {
  return new RegExp(`^${root}\\/`).test(chunk.name);
});

但是chunkGraph.getChunkModules(module).length === 0 是真的。

我收到了这个link

【问题讨论】:

    标签: webpack webpack-5 webpack-splitchunks splitchunksplugin


    【解决方案1】:

    正确的chunkGraph方法名是getModuleChunks

    {
      splitChunks: {
        cacheGroups: {
          a: {
            test: (module, {chunkGraph})=> {
              return chunkGraph.getModuleChunks(module).every(chunk => chunk.name 
      === 'xxx');
            }
          }
        }
      }
    }
    

    方法源代码在您提供的链接中:https://github.com/webpack/webpack/blob/a16909c5fd/lib/ChunkGraph.js#L474

    【讨论】: