ReferenceError:__moduleName 未定义 Angular 2
Posted
技术标签:
【中文标题】ReferenceError:__moduleName 未定义 Angular 2【英文标题】:ReferrenceError: __moduleName is not defined Angular 2 【发布时间】:2017-01-30 11:43:12 【问题描述】:所以我发现了这个技巧,我们可以使用 __moduleName 以便 systemjs 能够知道我们当前的位置,而我们不需要指定整个文件夹路径。
组件
@Component(
moduleId: __moduleName,
selector: 'app-customer',
templateUrl: 'customer.component.html'
)
app.d.ts
declare var __moduleName: any;
我已经将 __moduleName 声明为全局变量,但控制台仍然显示引用错误。有什么建议吗?
【问题讨论】:
同样的问题。附带说明一下,使用旧 angular2 演示中的 module.id 版本几乎可以工作,但它会继续在子组件中渲染父组件。 【参考方案1】:这与您注册转译的格式有关。 'system' 注册 __moduleName 变量以使用模块的相对路径。这是节点模块(js 转译文件),而不是角度模块(节点模块包)。如果您使用“commonjs”格式,Node 还有一个默认值module.id。
您可以检查 tsconfig.json 的设置:
"compilerOptions":
...
"module": "amd | umd | system | commonjs | es6 | es2015 | none",
...
https://www.typescriptlang.org/docs/handbook/compiler-options.html
【讨论】:
以上是关于ReferenceError:__moduleName 未定义 Angular 2的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的 ReferenceError:未定义 ytcfg(也未定义 __ytRIL)
JavaScript ReferenceError: Can’t find variable: __doPostBack
Adobe Animate ReferenceError:错误#1069:在_上找不到属性loopMode,并且没有默认值
NativeScript 遇到致命错误:Uncaught ReferenceError: __UI_USE_EXTERNAL_RENDERER__ is not defined