SystemJs,Angular2导入文件

时间:2016-03-09 12:53:34

标签: angular systemjs

这是我在index.html中的systemJs配置

<script>
  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });

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

app.js

import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';

import {loginDirective} from './login-directive.js';

@Component({
selector: 'loginForm',
directives: [loginDirective],
templateUrl:'./view/login_view.html'
})

export class loginForm{

};

bootstrap(loginForm);

为什么我总是在import(login-directive.js)或系统js app.js中定义.js,而不仅仅是login-directive和app,如果defaultExtension设置为“js”?

TNX 米哈

1 个答案:

答案 0 :(得分:0)

事实上,使用SystemJS配置,format = 'register'defaultExtension = 'js'仅适用于以app /.开头的模块。

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

component.js位于app文件夹下(我在此考虑导入是在app下的模块中完成的,例如app/boot模块):

import { ... } from './component';

这是结构:

app/
  boot.js (compiled from boot.ts)
  component.js (compiled from component.ts)

否则,SystemJS将尝试直接使用其名称加载模块

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