问题描述
我在浏览器中收到Cannot access 'MyComponent' before initialization
错误消息。
ng build
正常运行。
我对此主题进行了一些研究,并发现了使用以下设置更新应用程序的tsconfig.base.json
文件的建议:
{
"compilerOptions": {
"emitDecoratorMetadata": false
}
}
"annotateForClosureCompiler": {
"annotateForClosureCompiler": true
}
也没有帮助。因此尝试将target
从es2015
更改为任何较新的版本,但未能解决问题。
我也尝试在我的媒体库(包含该组件的内容)上更改这些设置,但并没有帮助。
我检查了以下讨论:
- Same issue in Angular 7.2.1
- Next question from Oliver Matrot
- Property decorators break at runtime with ES2015 and circular deps on GitHub angular/angular
- ES2015 + emitDecoratorMetadata causes Cannot access before intialization on GitHub angular/angular-cli
就我而言,我使用了Angular软件包中的10.1.6
:
{
"dependencies": {
"@angular/animations": "^10.1.6","@angular/cdk": "^10.2.5","@angular/common": "^10.1.6","@angular/compiler": "^10.1.6","@angular/core": "^10.1.6","@angular/forms": "^10.1.6","@angular/material": "^10.2.5","@angular/platform-browser": "^10.1.6","@angular/platform-browser-dynamic": "^10.1.6","@angular/router": "^10.1.6",},"devDependencies": {
"@angular-devkit/build-angular": "^0.1001.3","@angular/cli": "^10.1.7","@angular/compiler-cli": "^10.1.6",}
}
有什么主意吗?
解决方法
我解决了对库的循环依赖,错误消失了。