如何加载由webpack 1.12.9生成的块文件?
webpack引导脚本是否在运行时自动加载块文件?
或者....我是否必须通过脚本标记在网页中手动导入这些块文件?
情况是我有一个由amd(异步模块定义)模块化的cordova web应用程序。
由于它的架构存在设计缺陷,我们必须在我们的网页中单独加载javascript。
我们想在head标签内加载框架和框架初始化代码,并在body标签的末尾加载所有内容。
我的页面结构如下所示。
<html>
<head>
<!--ignored-->
<script src="lib/requirejs/require.js"></script>
<script src="js/common.js"></script><!-- frameworks e.g. jquery-->
<script src="js/boot.js"></script><!-- framework initialization -->
</head>
<body>
<!-- Several pages in this SPA -->
<script src="js/main.js"></script><!-- main entry point -->
<script src="js/delivery.js"></script><!-- other modules -->
</body>
</html>
但如果我通过下面的webpack设置构建我的网页,那么我的浏览器将尝试在运行时从我网站的根路径加载jquery。
例如,requirejs尝试从http://localhost:8000/browser/www/jquery加载jquery,而不是从块文件中获取它,其中包含构建此SPA的框架。
这个问题导致我的应用崩溃了。
{
entry: {
boot: "./src/js/boot.js",
main: "./src/js/main.js",
delivery: "./src/js/module/dev/delivery.js"
},
output: {
path: path.join(__dirname, "www/js"),
filename: "[name].js",
chunkFilename: '[name].js'
//,libraryTarget:"amd"
},
resolve: {
root: [
path.resolve('./src/js')
],
alias: {
"jquery":path.join(__dirname, jquerySrcPath),
"jquery.mobile":path.join(__dirname, jqmSrcPath),
"jqm-and-i18next-config":path.join(__dirname, "src/js/jqm-and- i18next-config.js"),
"jquery.i18next":path.join(__dirname, "src/lib/jquery-i18next-plugin-for-synnex/i18next.amd.withJQuery-1.8.0.js"),
"underscore":path.join(__dirname, "src/lib/underscore/underscore.js"),
"backbone":path.join(__dirname, "src/lib/backbone/backbone.js")
}
},
plugins: [
new webpack.optimize.CommonsChunkPlugin("common.js")
]
}
我想知道这个问题的根本原因是什么? 并且....如果requirejs尝试从不正确的地方加载jquery是因为我的网页在运行时没有加载块文件,那么如何在webpack中建议的方式呢?
感谢任何建议,谢谢!