使用Webpack的多个页面的一个捆绑包
One bundle for several pages with Webpack
我有几个页面,希望将所有脚本编译成一个包。
我知道每个页面可能有几个条目,但它会为不同的页面生成几个捆绑包。
为什么一个捆绑包对我来说如此重要:
- 当结果是一个bundle而不是几个bundle(比如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>
...
可能的解决方法的主要思想:
您可以在构建时将特殊的引导模块设置为入口点。在运行时,该模块从脚本标记属性中提取启动模块的名称,并有条件地要求它
webpack.config.js:
module.exports = {
...
entry: "./webpack-entry-module.js",
...
}
webpack-entry-module.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;
}
现在您可以参考html:中的模块
page1.html:
<script src="bundle.js" webpack-entry-module="module1.js"></script>
page2.html:
<script src="bundle.js" webpack-entry-module="module2.js"></script>
完整的示例如下:
https://github.com/artin-phares/webpack-entry-module
相关文章:
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 为什么我在 webpack 中需要 html 文件时会得到一个位置字符串
- Webpack错误:“您可能需要一个适当的加载程序来处理此文件类型”
- Webpack:您可能需要一个适当的加载程序来处理此文件类型
- webpack 1:resolve.alias 不将一个 npm 模块别名到另一个 npm 模块
- 由 webpack 构建的 react(es6) 在浏览器中有一个未捕获的类型错误
- Webpack - 如何将依赖项捆绑到一个单独的文件中,该文件将包含在“常规”输出流中
- Webpack:如何为“webpack”创建一个加载器,它需要一系列依赖项
- 使用Webpack的多个页面的一个捆绑包
- 使用webpack从条目导出(一个函数)
- 为什么我的webpack配置的es6版本会给我一个错误,而es5版本却没有;t
- webpack.validateSchema 不是一个函数
- 如何实例化一个es6类,当它被webpack捆绑到一个函数中时
- Webpack:使用另一个依赖而不是它自己的子依赖来创建依赖
- Webpack构建更少的文件输出一个CSS最小化文件
- 使用html-webpack-plugin将一个对象传递给ejs加载器
- ReactJS Webpack错误类型.toUpperCase不是一个函数
- WebPack + SystemJS -如何添加一个JavaScript文件
- 一个非常简单的查询-用webpack加载普通的旧javascript文件
- 我怎么能加载一个url(路径)的图片或其他在您的构建(prod)与webpack的文件