我有一个 shell 应用程序,可以与 https://single-spa.js.org/docs/api/ 和 https://github.com/systemjs/systemjs 一起运行其各种微前端。
现在我有一个全新的 Angular 应用程序,我想让它与新的构建器一起使用
esbuild
。
运行
npm run build
并最终得到一个 main.js
文件。当我尝试运行该文件时,它会产生错误:
未捕获的错误:可注入的“_G”需要使用 JIT 编译器,但“@angular/compiler”不可用。可注射的 是已部分编译的库的一部分。但是,那 Angular Linker 尚未处理该库,以便进行 JIT 编译 用作后备。
理想情况下,使用 Angular Linker 处理该库,使其成为 完全 AOT 编译。或者,应该加载 JIT 编译器 通过使用“@angular/platform-browser-dynamic”进行引导或 '@angular/platform-server',或者手动向编译器提供 '导入“@角度/编译器”;'在引导之前。
捆绑文件不应该包含@angular/compiler库吗?
编辑:包含 package.json
"dependencies": {
"@angular-architects/ngrx-toolkit": "^0.1.2",
"@angular/animations": "^17.2.0",
"@angular/common": "^17.2.0",
"@angular/compiler": "^17.2.0",
"@angular/core": "^17.2.0",
"@angular/elements": "^17.3.0",
"@angular/forms": "^17.2.0",
"@angular/platform-browser": "^17.2.0",
"@angular/platform-browser-dynamic": "^17.2.0",
"@angular/router": "^17.2.0",
"@ngrx/signals": "^17.1.1",
"@ngrx/store": "^17.1.1",
"@ngrx/store-devtools": "^17.1.1",
"@signicat/pubsub": "^2.0.0",
"esbuild": "^0.20.2",
"esbuild-plugin-manifest": "^1.0.3",
"rxjs": "~7.8.0",
"single-spa": "^6.0.1",
"single-spa-angular": "^9.0.1",
"tslib": "^2.3.0",
"zone.js": "~0.14.3"
},
"devDependencies": {
"@angular-devkit/build-angular": "^17.2.3",
"@angular/cli": "^17.2.3",
"@angular/compiler-cli": "^17.2.0",
"@types/jasmine": "~5.1.0",
"jasmine-core": "~5.1.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.3.2"
}
尝试 npm install @angular/compiler
纱线添加@Angular/compiler
清除缓存并重新安装依赖项
npm 缓存清理 --force npm 安装
纱线缓存清理 纱线安装