所以我发现这个技巧我们可以使用__moduleName,这样systemjs就能告诉我们当前的位置,而且我们不需要指定整个文件夹路径。
组件
@Component({
moduleId: __moduleName,
selector: 'app-customer',
templateUrl: 'customer.component.html'
})
app.d.ts
declare var __moduleName: any;
我已经将__moduleName声明为全局变量,但控制台仍然显示引用错误。有什么建议吗?
答案 0 :(得分:1)
这与您注册转换的格式有关。 'system'注册__moduleName变量以使用模块的相对路径。这是节点模块(js转换文件),而不是角度模块(节点模块包)。如果您使用'commonjs'格式module.id,则节点也有一个默认值。
您可以检查tsconfig.json的设置:
{
"compilerOptions": {
...
"module": "amd | umd | system | commonjs | es6 | es2015 | none",
...
}
}
https://www.typescriptlang.org/docs/handbook/compiler-options.html