Webpack 为什么在CommonChunkPlugin中使用minChunks来提取所有节点_模块会导致更大的捆绑?

Webpack 为什么在CommonChunkPlugin中使用minChunks来提取所有节点_模块会导致更大的捆绑?,webpack,Webpack,以下是两个用于提取大致相同内容的网页配置: 这将通过显式地给出从package.json entry: { app: path.join(basePath, 'app.js'), vendor: Object.keys(packageJson.dependencies) }, plugins: [ new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: '[na

以下是两个用于提取大致相同内容的网页配置:

  • 这将通过显式地给出从
    package.json

    entry: {
        app: path.join(basePath, 'app.js'),
        vendor: Object.keys(packageJson.dependencies)
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: 'vendor',
            filename: '[name].js',
        }),
    ]
    
  • 这使用
    minChunks
    提取路径中与
    node\u模块
    匹配的所有模块(这也是

  • 他们生产不同大小的捆绑包,第二个捆绑包有更大的供应商捆绑包。虽然它有一个较小的应用程序包,但第二个应用程序包的总规模仍然较大

  • 15kb

  • 20kB

  • 我分析了捆绑包,后一个似乎包括
    style loader
    css loader

  • 首先,为什么两个配置产生不同的包,它们不应该产生完全相同的包吗?为什么它在第二个配置中包含
    样式加载程序
    css加载程序
    (或任何其他加载程序?

    :)以开始调试?
    entry: {
        app: path.join(basePath, 'app.js'),
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: 'vendor',
            minChunks: module => module.context && module.context.indexOf('node_modules') !== -1,
        }),
    ]