Обновленное и правильное решение, чтобы исправить это
На основании ответа от Tran Quang , я пошел к CHANGELOG.md из ionic-native
и узнал , что они недавно обновили свой пакет для компиляции с угловыми 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
(потому что несколько старых выпусков не работали).
Приветствия 😀🎉🎊
Если по какой-либо причине вы не можете обновить свои @ionic-native
зависимости, посмотрите на мой оригинальный ответ для различных обходных путей / решений ⬇️
Оригинальный ответ
Для меня следующие решения работали. Не уверен, что они идеально подходят для добавления, но надеюсь, что команда Ionic исправит это, поскольку эти решения не были нужны, когда я обновил свое простое приложение Angular до Angular 9.
Решение 1
Выключите АОТ путем изменения "aot": true
в "aot: false
в angular.json
файле. Я не рекомендовал бы это, поскольку это улучшает производительность приложения Angular и улучшает отлов кодов ошибок в режиме разработки.
Решение 2
Если вы не хотите вносить изменения angular.json
и хотите исправить эту проблему ionic serve
только, передайте --aot=false
флаг ng
команде, используя --
:
ionic serve -- --aot=false
Решение 3 (слепой вариант)
Если ни одно из вышеперечисленных решений не работает для вас, вы можете запустить команду, npm update
которая обновит буквально все ваши зависимости package.json
(это означает, что ионные зависимости также будут обновлены).
Это слепой вариант, потому что вы не будете иметь представления о том, какие зависимости обновляются и каковы критические изменения в этих обновленных зависимостях. Таким образом, вы можете решить другие проблемы из-за этого.
Так что вы сами рискуете этим :) Ну, это стоит делать, если ваше приложение не такое большое или не использует какие-либо коды, которые удалены в более новых зависимостях.
Решение 4 (последний и худший вариант)
Добавить import '@angular/compiler';
в main.ts
файл. Но это может увеличить размер пакета.
дополнительный
При обновлении ионного, вы можете столкнуться с другим вопросом из - за неправильные import
в polyfills.ts
. Если да, проверьте src / zone-flags.ts отсутствует в компиляции TypeScript после обновления до Ionic 5
Для Angular: остановка терминала и его повторное обслуживание
ng serve
решили проблему для меня.источник
Попробуйте
ng serve --aot
, это помогло мне решить проблему, вот если вы хотите запустить с aot, который рекомендуется, так как он будет похож на производственную сборку и поможет вам быстрее находить ошибки.Надеюсь это поможет.
Angular Link: https://angular.io/guide/aot-compiler
источник
Из-за ионного обновления недостаточно быстро, вы можете попробовать:
npm i @ionic-native/status-bar@beta @ionic-native/splash-screen@beta @ionic-native/core@beta -S
работать на меня.обновление 2020/02/18 => мы можем запустить
npm i @ionic-native/status-bar @ionic-native/splash-screen @ionic-native/core -S
сейчас, чтобы получить последнюю стабильную версиюисточник
Нужно обновить ионные, а так будет работать. Для угловых при обновлении версия обновляет все зависимые от себя. Но в ионном надо обновить вручную.
источник
Запуск
npm update
исправил проблему для меня.источник
npm update
что буквально обновит каждую и каждую зависимость, и у вас не будет представления, что именно обновлено и еще много чего. Это также может привести к другим ошибкам.