返回

告别 CommonsChunkPlugin,拥抱 optimization.splitChunks 和 optimization.runtimeChunk

前端







## 前言

在Webpack 4中,CommonsChunkPlugin已被废弃,取而代之的是两个新的配置选项:optimization.splitChunks和optimization.runtimeChunk。这两个选项可以实现与CommonsChunkPlugin类似的功能,但更加灵活和可控。

## optimization.splitChunks

optimization.splitChunks选项用于配置代码分割策略。它可以根据各种因素(如模块大小、模块依赖关系等)将代码分割成多个块,从而减少主包的大小并提高加载速度。

optimization.splitChunks选项的详细用法请参考Webpack官方文档:https://webpack.js.org/plugins/split-chunks-plugin/

## optimization.runtimeChunk

optimization.runtimeChunk选项用于配置运行时代码的分割策略。运行时代码是Webpack打包过程中自动生成的代码,用于初始化Webpack运行环境和加载模块。

optimization.runtimeChunk选项的详细用法请参考Webpack官方文档:https://webpack.js.org/plugins/runtime-chunk-plugin/

## 实例

以下是一个使用optimization.splitChunks和optimization.runtimeChunk选项的Webpack配置示例:

```javascript
module.exports = {
  optimization: {
    splitChunks: {
      cacheGroups: {
        commons: {
          test: /[\\/]node_modules[\\/]/,
          name: "commons",
          chunks: "all",
        },
      },
    },
    runtimeChunk: true,
  },
};

在这个示例中,optimization.splitChunks选项将所有node_modules中的模块打包成一个名为"commons"的块。optimization.runtimeChunk选项则将运行时代码打包成一个单独的块。

总结

Webpack 4中用optimization.splitChunks和optimization.runtimeChunk选项替代了CommonsChunkPlugin,这两个选项更加灵活和可控,可以实现与CommonsChunkPlugin类似的功能。