WebPack:没有额外块的多个入口点

时间:2016-03-01 20:09:48

标签: javascript build webpack chunks

我想使用WebPack来构建我的JavaScript应用程序。应用程序应该部署在几个站点上,有几种不同的修改。因此,我已将配置设置为使用多个入口点,每个站点一个:

entry: {
  s1: "s1",
  s2: "s2",
  s3: "s3"
},

该应用程序还使用了几个依赖项,这些依赖项通过AMD模块加载(之前我使用过RequireJS):

c1
c2
...

假设s1同时需要c1c2,而s2只需要c1。构建工作正常,它创建s1s2s3作为入口点,以及包含各种组件组合的几个块,如网站所需:

/* s1 */
define(['c1', 'c2'], function(c1, c2) { ... }

我的问题是:我需要在配置中指定什么才能将每个站点包构建为一个独立文件?我很欣赏WebPack将应用程序拆分成块的能力,但是现在我需要每个构建都是一个JS文件(出于各种原因)。

当我仅使用以下内容配置单个入口点(例如entry: "s1")时,我能够轻松实现这一点:

webpack.optimize.LimitChunkCountPlugin({maxChunks: 1})

但是,对于多个入口点,此配置会在所有入口点之上创建一个附加块。如何确保每个构建的入口点(例如s1.bundle.jss2.bundle.js,...)包含该文件中的所有JavaScript,并且不需要按需加载任何块?

1 个答案:

答案 0 :(得分:2)

听起来最简单的方法是拥有多个构建(每个构建一个入口点),而不是具有多个入口点的单个构建。如果您的webpack.config.js导出一个配置对象数组而不是一个配置对象,webpack将自动为每个配置执行单独的构建。因此,您可以将您的入口点放在一个数组中并循环遍历它,为每个创建一个配置对象。现在每个配置只有一个入口点,LimitChunkCountPlugin应该为您提供单个文件。