我对ES6模块和SystemJS有什么问题?

时间:2016-01-06 22:23:02

标签: ecmascript-6 angular systemjs

我正在玩Angular2 beta tutorials,并发现ES6导入模块的新方式有多么壮观。 systemjs。

然而,我无法让它发挥作用。

一切正常,直到你有二级页面,system.js只配置为第一级页面

此处是plnkr,问题为http://plnkr.co/edit/afsJY6tzrSeYMOtzUnXQ?p=preview

一旦运行,如您所见,主页有效,但第二级页面无效。

必须是systemjs配置的东西,我有我的解释,我完全理解为什么它不起作用,我找到了一个解决方法,但我不喜欢它,你能不能指出我正确的方法?

这一部分:

System.import('app/boot').then(null, console.error.bind(console));

可以通过

轻松修复
System.import('/app/boot.js').then(null, console.error.bind(console));

然后在boot.ts中

import {bootstrap}    from 'angular2/platform/browser'
import {AppComponent} from './app.component'

bootstrap(AppComponent);

我不知道如何修复' ./ app.component'因为如果我做了' ../ app / app.component.js'打字稿编译器会指责,那么,正确的策略如何?

1 个答案:

答案 0 :(得分:0)

我不确定推荐的方式是什么,因为我还是初学者,但一种方法是将地图添加到配置中:

System.config({
  packages: {        
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  },
  map: {
    app: '../app' // <--
  }
});

当您在本地运行时,您可以将相对../app替换为类似/app的绝对值。