繁体   English   中英

错误:必须从注入上下文调用注入() - 将 angular 8 升级到 9

[英]Error: inject() must be called from an injection context - Upgraded angular 8 to 9

我在启用 Ivy 的情况下将我的 angular 应用程序从 8 升级到了 9。 现在应用程序正在正确构建,但是当我执行服务时,我在控制台中遇到错误 -

Error: inject() must be called from an injection context
    at injectInjectorOnly (VM29 vendor.js:32922)
    at Module.ɵɵinject (VM29 vendor.js:32933)
    at Object.A11yModule_Factory [as factory] (VM29 vendor.js:8401)
    at R3Injector.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.hydrate (VM29 vendor.js:195954)
    at R3Injector.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.get (VM29 vendor.js:195771)
    at VM29 vendor.js:195809
    at Set.forEach (<anonymous>)
    at R3Injector.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector._resolveInjectorDefTypes (VM29 vendor.js:195809)
    at new NgModuleRef$1 (VM29 vendor.js:209242)
    at NgModuleFactory.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.NgModuleFactory.create (VM29 vendor.js:209302)

Angular:

"@angular-devkit/build-angular": "0.901.1",
"@angular-devkit/build-ng-packagr": "~0.901.1",
"@angular/cli": "^9.0.1",
"@angular/compiler-cli": "^9.1.1",

任何人有任何想法? 任何帮助将不胜感激。

我不知道根本原因和发生了什么。 我刚刚删除了工作区,git 再次克隆了项目,这个问题就消失了。 奇怪的!!

我们最近注意到了这个问题,我们希望这个解决方案对某人有所帮助。

在我们的例子中,这个问题是在导入特定的 Angular 库(自定义)时发生的。

解决方案是在导入库的项目的angular.json文件中将preserveSymlinks设置为true

$.projects.<<PROJECT_NAME>>.architect.build.options.preserveSymlinks: true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM