我对Angular和systemjs很新,但我会尝试尽可能更具体。
我正在使用angularjs2和打字稿。我使用tsconfig.json编译我的.ts文件。这是我的配置:
接下来,我想使用systemjs通过index.html引导我的应用程序。但我的导入不接受没有扩展名的init(下面,我的init,实际上工作):
System.config({
transpiler: 'typescript'
});
System.import('src/app.ts');
我被迫提到.ts扩展名(当我想导入手工制作的组件时,ts文件中的问题相同)。
我忘记了什么吗?有关首次配置的初学者的文档有点粗略。
此外,我已经在<head>
中调用了所有脚本(system.js,typescript.js,angular2.dev.js)
我有一个类似的问题,唯一的区别是我没有使用角度
@Nicolas指出了正确的方向,你需要添加“defaultExtension”,对我来说,以下配置可以解决问题:
packages: {
'.': {
defaultJSExtensions: 'js'
}
},
你可以在github找到更多关于how to configure systemjs的信息
更新:戴的评论:
由于systemjs 0.19属性为defaultExtension,默认为* .js,因此除非您使用非默认设置,否则无需定义包成员。
我正在研究AngularJS的新版本,每次我需要设置SystemJS时,我在索引页面中使用此配置。
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
你需要说你的扩展文件是什么,SystemJS加载你的模块,我抱它帮助你。
在angularjs Quickstart上,他们没有提到包名称必须匹配。我花了一段时间来弄明白。
System.config({
packages: {
WHATEVER: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('WHATEVER/app');