Webpack输出两个bundle:source是node_modules vs src吗?

时间:2018-05-03 20:25:32

标签: javascript webpack code-splitting

我的项目结构:

/src
  /module_1
  /module_2
  /module_3
  /...  <-- half a dozen other directories
/node_modules
  /obscure_1
  /obscure_2
  /obscure_3
  /...  <-- half a million other directories

有没有办法自动让Webpack(3.x)输出两个包:

  • 仅限/src
  • 中的文件
  • 仅从/src导入但从/node_modules
  • 导入的文件

我过去所做的是手动选择我的项目使用的3-4个主要软件包(在/src中),并单独打包(通过配置&将它们从主软件包中排除) #39; s externals阻止)。是否可以完全自动化此过程?

1 个答案:

答案 0 :(得分:1)

查看CommonChunkPlugin的工作原理,它可以解决您的问题。

您可以指定来自node_modules的所有模块都在供应商块中,并将该配置传递给它:

new webpack.optimize.CommonsChunkPlugin({
    name: "vendor",
    minChunks: function(module){
      return module.context && module.context.includes("node_modules");
    }
})