Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要。请确保从根目录移动网页包后不工作_Javascript_Webpack_Webpack 2 - Fatal编程技术网

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的路径(
    tools/webpack
    ,与publicPath相同),但提升了两个级别,最高为
    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
更改为我的应用程序的根目录。