SystemJS:使用bundle-file更正System.import

时间:2016-03-25 18:20:26

标签: javascript angular systemjs

我的bundle out.js文件连接了main.js和app.component.js模块。现在我想使用SystemJS在index.html中导入这个out.js文件。其实我想"打电话"主要的(.js) - 模块。

我现在想知道如何导入我的bundle文件的内部模块。是在内部System.import(bundle)中嵌套System.import(内部模块)的正确方法吗?实际上它正在工作,但我不确定这是否正常。

的index.html

<script type="text/javascript" src="lib/out.js"></script>

<script>
    System.config({
        packages: {
            lib: {
                format: 'register',
                defaultExtension: 'js'
            }
        }
    });
    System.import('lib/out')
            .then(function() { // ---Is this the way to do it?---
                System.import('/main');
            }, console.error.bind(console));
</script>

out.js

System.register('app.component', ['angular2/core'], function(exports_1, context_1) {
  var __moduleName = context_1 && context_1.id;
  ..
}};

System.register('main', ['angular2/platform/browser', './app.component'], function(exports_1, context_1) {
  var __moduleName = context_1 && context_1.id;    
  ..
}};

1 个答案:

答案 0 :(得分:4)

实际上,您的out.js文件使用System.register直接使用名称注册您的模块。因此,当您使用脚本标记添加此文件时,可以在SystemJS中直接使用这些模块。

<script src="lib/out.js"></script>

<script>
  System.import('main')
        .then(null, console.error.bind(console));
</script>