为什么在Webpack 4中设置minChunks会破坏cacheGroup的构建?

时间:2018-05-03 18:04:58

标签: javascript webpack webpack-4

我构建的块的大小太大,所以我试图将它们分成更小的块。当我在minChunks上设置cacheGroup condition时,它会阻止该群体构建,而不会提供任何错误。我在配置中做错了什么?

// webpack.common.js

entry: {
    build: path.join(setPath('src'), 'main.js')
},
output: {
    path: setPath('dist'),
    publicPath: '/',
    filename: 'js/[name].[hash:8].js',
    chunkFilename: 'js/[name].[hash:8].js'
},

没有minChunks

// webpack.prod.js

optimization: {
  splitChunks: {
    cacheGroups: {
      vendors: {
        test: /node_modules/,
        chunks: 'all'
      }
    }
  }
}

// output
                       Asset     Size      Chunks                  Chunk Names
js/vendors~build.2ef9f7c1.js     1.98 MiB       0  [emitted]  [big]  vendors~build
js/build.2ef9f7c1.js             354 KiB        1  [emitted]  [big]  build
index.html                       592 bytes         [emitted]

使用minChunks

// webpack.prod.js

optimization: {
  splitChunks: {
    cacheGroups: {
      vendors: {
        test: /node_modules/,
        chunks: 'all',
        minChunks: 2
      }
    }
  }
}

// output
               Asset            Size       Chunks                  Chunk Names
js/build.77d425d4.js            2.33 MiB        0  [emitted]  [big]  build
index.html                      454 bytes          [emitted]

1 个答案:

答案 0 :(得分:0)

将minChunks从2更改为1,它将正常工作。因为只有一个名为“ build”的条目文件,所以它是共享公共依赖项的唯一块。