ReferrenceError:__moduleName未定义Angular 2

时间:2016-09-22 03:38:53

标签: angularjs angular components systemjs

所以我发现这个技巧我们可以使用__moduleName,这样systemjs就能告诉我们当前的位置,而且我们不需要指定整个文件夹路径。

组件

@Component({
    moduleId: __moduleName,
    selector: 'app-customer',
    templateUrl: 'customer.component.html'
})

app.d.ts

declare var __moduleName: any;

我已经将__moduleName声明为全局变量,但控制台仍然显示引用错误。有什么建议吗?

1 个答案:

答案 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