Javascript 需要。请确保从根目录移动网页包后不工作
我以前有这样的文件夹结构:Javascript 需要。请确保从根目录移动网页包后不工作,javascript,webpack,webpack-2,Javascript,Webpack,Webpack 2,我以前有这样的文件夹结构: [development] --[app] ----[dist] ------[js] --------app.js --------contact-support.0.js ----[src] --[node_modules] --package.json --webpack.config.js --index.php [tools] 但将与webpack相关的所有内容从根目录移动到tools/webpack: [development] --[app] --
[development]
--[app]
----[dist]
------[js]
--------app.js
--------contact-support.0.js
----[src]
--[node_modules]
--package.json
--webpack.config.js
--index.php
[tools]
但将与webpack相关的所有内容从根目录移动到tools/webpack
:
[development]
--[app]
----[dist]
------[js]
--------app.js
--------contact-support.0.js
----[src]
--index.php
[tools]
--[webpack]
----[node_modules]
----package.json
----webpack.config.js
因此,我现在从工具/webpack
运行webpack,webpack.config.js
中的大部分路径由/./../development
执行
除了那些无用的块(由require.sure()
创建)之外,一切都正常
我在webpack compile上没有错误,在Chrome的控制台上也没有错误,但是当我偶然发现动态加载块的部分代码时,我得到:
Uncaught (in promise) TypeError: Cannot read property 'call' of undefined(…)
我知道这说明不了什么,但从我99%的经验来看,它必须与webpack的路径处理有关
魔鬼就藏在这里:
output: {
chunkFilename: './../../development' + '/app/dist/js/[name].[id].js',
publicPath: 'http://localhost/YDR/branches/refactoring/tools/webpack/'
},
问题是,当webpack生成区块文件时,它是在不同的目录(/tools/webpack/
)中完成的,而不是在应用程序尝试加载它时(/development/
),所以我不能使用相对路径,需要在这里稍加修改
理论上,这些路径是正确的:
- 保存时:块文件保存的路径是我运行webpack的路径(
,与publicPath相同),但提升了两个级别,最高为tools/webpack
http://localhost/YDR/branches/refactoring/development/app/dist/js/
- 加载时:从中加载区块文件的路径由publicPath+chunkFilename生成,该路径也解析为
http://localhost/YDR/branches/refactoring/development/app/dist/js/
module.exports = (function () {
$('document').ready(function () {
$('body').on('click', '[data-target="#contactSupport"]', function () {
require.ensure([
'./../modules/contact-support/contact-support.js' // files that chunk will contain
], (require) => {
require('./../modules/contact-support/contact-support.js'); // BREAKS HERE
}, 'contact-support'); // name of chunk file
});
});
})();
仅供参考网页2的最新RC未使用
require。请确保但System.import
instead切换到System.export/import并正常工作!但我还必须将publicPath从工具/webpack
更改为我的应用程序的根目录。仅供参考,webpack 2的最新RC不使用require。请确保但System.import
而不是切换到System.export/import,并且它工作正常!但我还必须将publicPath从tools/webpack
更改为我的应用程序的根目录。