Webpack4:基于入口点的两个供应商库

时间:2019-02-06 21:53:40

标签: javascript optimization webpack-4

因此,我一直在狩猎,除非最近我的搜索能力越来越差,否则我似乎找不到任何东西。但是,我要寻找的是能够基于入口点生成两个供应商捆绑包。

例如,我有3个入口点:

  • 编辑器
  • 公共
  • 验证

用户登录后,它将包含auth,public和editor捆绑软件的变体。用户注销后,只会加载公共捆绑包。这两种情况都将加载供应商捆绑包,但是当我们注销时,我不需要加载编辑器和auth中所需的模块,因此希望有一种方法可以将其拆分为vendor和vendor.auth。或类似的内容。

我目前唯一的优化代码如下:

optimization: {
    concatenateModules: true,
    splitChunks       : {
        cacheGroups: {
            commons: {
                test     : /[\\/]node_modules[\\/]/,
                name     : 'vendors',
                minChunks: 2,
                chunks   : 'all'
            }
        }
    }
},

这里的任何帮助将不胜感激!

谢谢

1 个答案:

答案 0 :(得分:3)

您可以使用chunks property函数将大块分成2个普通组。

optimization: {
  splitChunks: {
    cacheGroups: {
      commons: {
        test: /[\\/]node_modules[\\/]/,
        name: 'vendors',
        chunks: function (chunk) {
          return chunk.name == 'public';
        }
      },
      auth_commons: {
        test: /[\\/]node_modules[\\/]/,
        name: 'vendors.auth',
        chunks: function (chunk) {
          return ['auth', 'editor'].includes(chunk.name);
        }
      }
    }
  }
},