这是我在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 米哈
答案 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));