2016-03-01 70 views
0

我想使用WebPack来构建我的JavaScript应用程序。该应用程序应该被部署在几个网站上,进行几种不同的修改。因此,我已经设置为使用多个入口点,一个每每个站点的配置:WebPack:无需额外块的多个入口点

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

该应用程序还使用几个依赖关系,它们经由AMD模块加载(I之前使用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.js,s2.bundle.js,...)包含该文件内的所有JavaScript,并且不需要根据需要加载任何块?

回答

2

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