使用Webpack的多个页面的一个包

时间:2015-11-29 20:18:28

标签: javascript webpack

我有几个页面,想要将所有脚本编译成一个包。

我知道每个页面可以有多个条目,但它会为不同的页面生成几个包。

为什么一个捆绑对我来说如此重要:

  • 当结果是一个包而不是几个(比如,bundle-1.0.1.js)时,构建版本更方便
  • 它可以缓存一次并在所有页面中使用

这样的事情:

page1.html
...
<script src="bundle.js" entry-module="module-for-page1"></script>
...

page2.html 
...
<script src="bundle.js" entry-module="module-for-page2"></script>
...

1 个答案:

答案 0 :(得分:0)

可能的解决方法的主要想法:

在构建时将特殊引导程序模块设置为入口点。 运行时,此模块从script-tag属性中提取启动模块的名称,并有条件地要求它。

webpack.config.js:

var entryModule = document.querySelector('script').getAttribute('webpack-entry-module');

switch(entryModule) {
case 'module1.js': require('./module1.js'); break;
case 'module2.js': require('./module2.js'); break;
}

的WebPack-入门module.js:

page1.html:
<script src="bundle.js" webpack-entry-module="module1.js"></script>

page2.html:
<script src="bundle.js" webpack-entry-module="module2.js"></script>

现在您可以从html参考模块:

Q.all


完整的例子在这里:
https://github.com/artin-phares/webpack-entry-module