Javascript 首次尝试时System.import失败(模块[moduleId]未定义)

Javascript 首次尝试时System.import失败(模块[moduleId]未定义),javascript,webpack,ecmascript-6,es6-promise,webpack-2,Javascript,Webpack,Ecmascript 6,Es6 Promise,Webpack 2,当我在单独的模块中多次使用System.import()时,其中一个模块在第一次尝试时不起作用(Webpack的require函数返回modules[moduleId]未定义),但在第二次尝试和后续尝试时,它会正常加载 文件夹结构 [webpack-test] ----[modules] --------foo.js --------bar.js --------dateHelper.js ----[node_modules] ----0.app.dist.js ----0.charts.dis

当我在单独的模块中多次使用
System.import()
时,其中一个模块在第一次尝试时不起作用(Webpack的require函数返回
modules[moduleId]未定义),但在第二次尝试和后续尝试时,它会正常加载

文件夹结构

[webpack-test]
----[modules]
--------foo.js
--------bar.js
--------dateHelper.js
----[node_modules]
----0.app.dist.js
----0.charts.dist.js
----1.app.dist.js
----3.app.dist.js
----app.dist.js
----app.js
----charts.dist.js
----charts.js
----index.html
----package.json
----webpack.config.js

index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="./app.dist.js"></script>
<script src="./charts.dist.js"></script>
</head>
<body>
</body>
</html>

webpack.config.js

var path = require('path');

module.exports = function () {
    return [
        // APP:
        {
            resolve: {
                modules: [
                    path.resolve('./modules/')
                ]
            },
            entry:   './app.js',
            output:  {
                filename: 'app.dist.js',
            }
        },

        // CHARTS:
        {
            resolve: {
                modules: [
                    path.resolve('./modules/')
                ]
            },
            entry:   './charts.js',
            output:  {
                filename: 'charts.dist.js',
            }
        }
    ];
};

app.js


foo.js


bar.js


dateHelper.js

export default (function dateHelper() {
    console.log('dateHelper');
})();

charts.js

export default (function charts() {
    System.import('dateHelper').then(dateHelper => {
        console.log('dateHelper imported');
    })
})();

控制台输出:

0.charts.dist.js:8 dateHelper

charts.dist.js:152已导入dateHelper

app.dist.js:48未捕获(承诺中)类型错误:无法读取未定义的属性'call'(app.dist.js:48)

模块[moduleId]。调用(module.exports、module、module.exports、\uuuuu webpack\uuuu require\uuuuu)

1.app.dist.js:8巴

app.dist.js:156条已导入

app.dist.js:153 foo已导入

app.dist.js:156条已导入

输出应为:

0.charts.dist.js:8 dateHelper

charts.dist.js:152已导入dateHelper

0.app.dist.js:8 foo

app.dist.js:153 foo已导入

1.app.dist.js:8巴

app.dist.js:156条已导入

app.dist.js:153 foo已导入

app.dist.js:156条已导入

export default (function foo() {
    console.log('foo');
})();
export default (function bar() {
    console.log('bar');
})();
export default (function dateHelper() {
    console.log('dateHelper');
})();
export default (function charts() {
    System.import('dateHelper').then(dateHelper => {
        console.log('dateHelper imported');
    })
})();