如何将Webpack资产捆绑在多个不链接到其他资产的页面中?

时间:2016-06-28 23:43:35

标签: javascript reactjs webpack

有些东西我无法理解Webpack。

大多数webpack示例都显示了一个主入口点app.js,它为Webpack导入所有其他反应组件,以递归方式构建结果文件。如果有多个入口点,例如pageA.js和pageB.js,我们将它们放入entry参数中的数组中。

我的问题是我的“主”入口点不使用和导入每个组件。也许只是一些。在PageA上,我可能只导入ComponentA和ComponentB。在PageB上,我可能只导入ComponentB和ComponentC。然后在我的MainPage上的main.js中,我可能只导入ComponentD。

我可以将main.js,PageA和PageB全部放入我的入口点。但是是否意味着我每次有新页面时都必须添加到webpack配置中的条目列表中?

如何使用Webpack处理此方案?

2 个答案:

答案 0 :(得分:6)

听起来您的设置是一个典型的webpack多页面应用程序,它通常由公共/供应商包(入口点)和每个页面的单独包(入口点)组成,如PageA和PageB。

对于每个页面,您需要先包含公共/供应商包,然后包含特定于页面的包。

<script src="common.js">
<script src="PageA.js">

查看multiple-entry-pointsmultiple-commons-chunks。 Webpack可以自动提取公共deps并将它们捆绑在一起(第一个例子),或者你可以指定哪些deps应该进入哪个常见的chucks(第二个例子)。还可以看看common-chunk-and-vendor-chunk,它完美地解释了常见的卡盘是如何工作的。

根据您的描述,您的设置与第一个示例(多个入口点)非常相似。

是的,当你有一个新页面时,你可能需要添加一个新的条目,比如PageC。

答案 1 :(得分:0)

Webpack的配置实际上是一个JS模块。这意味着您返回的对象可以通过编程方式而不是手动构建。

你想要的是webpack到handle chunks optimization properly for you。这一点,以及以编程方式确定您拥有的页面,应该允许您生成所有资产。