角度为9角的Ionic 5 JIT编译失败:'@ANGLING/编译器'未加载 [英] Ionic 5 with Angular 9 - Angular JIT compilation failed: '@angular/compiler' not loaded

查看:22
本文介绍了角度为9角的Ionic 5 JIT编译失败:'@ANGLING/编译器'未加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Ionic 5是announced几小时前(2020年2月12日),我将我的一个小型生产应用程序升级到了Ionic 5以及角度9:

# To update to Ionic 5
npm install @ionic/angular@latest @ionic/angular-toolkit@latest --save-exact --save

# To update to Angular 9
ng update @angular/core @angular/cli

但是当我这样做时ionic serve,我开始收到以下错误:

Error: Angular JIT compilation failed: '@angular/compiler' not loaded!
  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.
  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?
  - Alternatively provide the compiler with 'import "@angular/compiler";' before bootstrapping.
    at getCompilerFacade (core.js:610)
    at Function.get (core.js:16065)
    at getInjectableDef (core.js:362)
    at injectableDefOrInjectorDefFactory (core.js:16816)

我遇到一些GitHub角度问题:

  1. https://github.com/angular/angular-cli/issues/16873
  2. https://github.com/angular/angular/issues/32466

他们说要在main.ts文件中包含import '@angular/compiler';,但是当我匹配我的另一个角度9应用程序(最近更新)时,我在那里看不到这样的配置。

角度9与Ionic 5不兼容吗?

推荐答案

已更新正确的解决方案来解决此问题(&A)

根据Tran Quang的回答,我去看了ionic-nativeCHANGELOG.md,得知他们最近更新了软件包,编译角度为9。

因此,您需要更新@ionic-native的任何/所有依赖项。为此,请查看package.gson文件中以@ionic-native/开头的所有依赖项,并逐个更新它们。

例如,这是我的package.gson

所以我必须运行以下命令来更新我的所有@ionic-native依赖项:

npm i @ionic-native/core@latest
npm i @ionic-native/camera@latest
npm i @ionic-native/firebase-x@latest
npm i @ionic-native/splash-screen@latest
npm i @ionic-native/status-bar@latest
您必须对您的@ionic-native依赖项执行相同的操作。只需确保这些版本最低更新到v5.21.5(因为一些旧版本不起作用)。

Cheers😀🎉🎊

如果由于某种原因,您无法更新您的@ionic-native依赖项,请查看我对不同解决办法/解决方案的原始答案⬇️


原始答案

对我来说,以下解决方案奏效了。我不确定它们是否适合添加,但希望Ionic团队能解决这个问题,因为当我将我的素角应用程序升级到Angel 9时,并不需要这些解决方案。

解决方案%1

通过在angular.json文件中将"aot": true更改为"aot: false来关闭AOT。我不建议这样做,因为这会提高角度应用程序的性能,并提高在开发模式下捕获错误代码的能力。

解决方案2

如果您不想在angular.json中更改,而只想为ionic serve修复此问题,请使用----aot=false标志传递给ng命令:

ionic serve -- --aot=false

解决方案3(盲选项)

如果上面的解决方案都不适合您,您可以运行命令npm update,该命令将逐字更新您的package.json中的所有依赖项(也就是说,离子依赖项也将更新)。

这是一个盲目的选项,因为您不知道更新了哪些依赖项,以及这些更新的依赖项中有哪些突破性更改。因此,您最终可能会因此修复其他问题。

因此,承担此风险取决于您:)如果您的应用程序不是那么大,或者没有使用在较新的依赖项中删除的任何代码,那么这是值得这样做的。

解决方案4(最后&;最差选项)

main.ts文件中添加import '@angular/compiler';。但这可能会增加捆绑包大小。

额外

升级Ionic时,可能会因为polyfills.ts中的import错误而面临另一个问题。如果是,请签出src/zone-flags.ts is missing from the TypeScript compilation after upgrading to Ionic 5

这篇关于角度为9角的Ionic 5 JIT编译失败:'@ANGLING/编译器'未加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆