ivy - 在 Angular 10 错误 NG6003 上激活 Ivy 编译器时出错 - 无法解析为 NgModule
问题描述
我们最近将我们的应用程序迁移到 Angular 10 和 PrimeNG 9,现在我们正准备将这些框架迁移到最新版本。
我们试图准备我们的应用程序进行迁移,并希望按照 Angular 的建议使用 Ivy 编译器。
但是当激活 Ivy 编译器并将 aot 设置为 true 时,它会在构建时显示以下错误:
node_modules/@maestro-ng/primeng/maestro-primeng.module.d.ts:1:22 中的错误 - 错误 NG6003:出现在 AppSharedModule 的 NgModule.exports 中,但无法解析为 NgModule、组件、指令、或管道类。
这可能意味着声明 MaestroPrimengModule 的库 (@maestro-ng/primeng) 没有被 ngcc 正确处理,或者与 Angular Ivy 不兼容。检查是否有更新版本的库可用,如果有则更新。还可以考虑与图书馆的作者核实,看看图书馆是否应该与 Ivy 兼容。
这是完整的 package.json:
{
"name": "codex-frontend",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"dev": "ng serve -c dev --watch=false",
"postinstall": "ngcc",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^10.2.5",
"@angular/cdk": "^10.2.7",
"@angular/common": "^10.2.5",
"@angular/compiler": "^10.2.5",
"@angular/core": "^10.2.5",
"@angular/forms": "^10.2.5",
"@angular/platform-browser": "^10.2.5",
"@angular/platform-browser-dynamic": "^10.2.5",
"@angular/router": "^10.2.5",
"@fortawesome/fontawesome-free": "5.15.4",
"@fullcalendar/core": "5.9.0",
"@maestro-ng/core": "https://nexus.myorg.com.br/repository/npm-all/@maestro-ng/core/-/core-1.10.0.tgz",
"@maestro-ng/primeng": "https://nexus.myorg.com.br/repository/npm-all/@maestro-ng/primeng/-/primeng-1.10.0.tgz",
"@types/pdfjs-dist": "2.7.5",
"bootstrap": "5.1.1",
"chart.js": "3.5.1",
"core-js": "3.18.0",
"g": "2.0.1",
"jquery": "3.6.0",
"js-base64": "3.7.2",
"moment": "2.29.1",
"ng2-currency-mask": "9.0.2",
"ng2-pdfjs-viewer": "6.0.2",
"ngx-moment": "5.0.0",
"pdfjs-dist": "2.9.359",
"@popperjs/core": "2.10.1",
"primeflex": "2.0.0",
"primeicons": "4.0.0",
"primeng": "9.1.3",
"quill": "1.3.7",
"rxjs": "6.6.2",
"simple-pdf-viewer": "2.0.3",
"tslib": "2.3.1",
"zone.js": "^0.10.3"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1000.8",
"@angular/cli": "^10.2.3",
"@angular/compiler-cli": "10.2.5",
"@angular/language-service": "10.2.5",
"@fortawesome/fontawesome-free": "5.8.2",
"@types/jasmine": "3.9.1",
"@types/jasminewd2": "2.0.10",
"@types/node": "16.9.6",
"codelyzer": "6.0.2",
"jasmine-core": "3.9.0",
"jasmine-spec-reporter": "7.0.0",
"karma": "6.3.4",
"karma-chrome-launcher": "3.1.0",
"karma-cli": "2.0.0",
"karma-coverage-istanbul-reporter": "3.0.3",
"karma-jasmine": "4.0.1",
"karma-jasmine-html-reporter": "1.7.0",
"protractor": "7.0.0",
"ts-node": "10.2.1",
"tslint": "^5.20.1",
"tslint-eslint-rules": "^5.4.0",
"typescript": "3.9.7"
}
}
即使使用 `"postinstall": "ngcc" 它也不起作用。
是否可以将 Ivy 与 Angular 10 和 PrimeNG 9 一起使用,我们需要首先将 PrimeNG 迁移到 10?
解决方案
推荐阅读
- php - 当 cron 文件位于 public_html 目录之外时,Cron 作业不起作用
- python - Wing IDE 中的错误:没有名为“sympy”的模块
- konvajs - 如何获取单击元素的位置和 id 以更改颜色并在其上绘制线条
- hp-uft - 如何使用 UFT15 识别 Microsoft Edge 浏览器中的下载栏
- android - 将带有表单数据的图像上传到服务器
- kotlin - Kotlin CoroutineScope 不工作 - JavaFx(使用 TornadoFx)
- python - 时间增量的扩展平均值
- sharepoint - 如何使用 Microsoft Graph C# 将数千张图像上传到 SharePoint 列表的图像列?
- xamarin - Visual Studio 2019 (Xamarin) 中未显示项目配置
- python - 具有请求的第一次迭代输入的 tqdm 进度条