Webpack 4 - 什么是splitChunks相当于minChunk:Infinity

时间:2018-05-24 23:48:19

标签: webpack commonschunkplugin

在webpack 3中,我们曾经能够拥有一个依赖关系,并且它的所有依赖关系在一个共同的块中组合在一起"使用:

    new webpack.optimize.CommonsChunkPlugin({
        name: 'common-init',
        minChunks: Infinity
    })

在Webpack 4中,您需要使用splitChunks。但是,现在一切都基于minChunk和test,它不支持" Infinity"如果你想得到一些东西"类似的"对于上述内容,您现在需要使用" test"如下所示,以便另一个" cacheGroup"并没有捆绑这些依赖关系:

    cacheGroups: {
            'common-init' : {
                name: 'common-init',
                chunks: 'initial',
                minChunks: 2,
                enforce : true,
                priority : 10,
                test : /common|somedepInit.js|analyticsDep|otherDepInit/
            },
            'resources': {
                name: 'resources',
                chunks: 'initial',
                minChunks: 2,
                test: /resources/
            }
    }

虽然这在技术上是我可以使用的解决方案,但使用Infinity需要更少的代码来强制执行某些依赖关系,最终会出现在一个非常具体的#34;#34;。

有没有更好的方法在Webpack 4中实现相同的目标?

1 个答案:

答案 0 :(得分:1)

这最终为我工作:

           'common-init' : {
            name: 'common-init',
            chunks: 'initial',
            minChunks: 2,
            enforce : true,
            priority : 10,
            test: (module, chunks) => chunks.some(({ name }) => name === 'common-init')
        },