【发布时间】:2022-06-10 21:55:03
【问题描述】:
我有一个 Ionic/Angular 项目,我想从 Angular 12 更新到 13。这是我第一次使用 CLI 更新 Angular 核心。
我按照 Angular 的详细信息执行升级:https://update.angular.io/?l=2&v=12.0-13.0 并遇到了一些问题。
运行此命令时:
ng update @angular/core@13 @angular/cli@13
我收到此错误:
The installed Angular CLI version is outdated.
Installing a temporary Angular CLI versioned 13.3.7 to perform the update.
✔ Packages successfully installed.
Using package manager: 'npm'
Collecting installed dependencies...
Found 61 dependencies.
Fetching dependency metadata from registry...
Package "@angular-eslint/builder" has an incompatible peer dependency to "@angular/cli" (requires ">= 12.0.0 < 13.0.0", would install "13.3.7").
✖ Migration failed: Incompatible peer dependencies found.
Peer dependency warnings when installing dependencies means that those dependencies might not work correctly together.
You can use the '--force' option to ignore incompatible peer dependencies and instead address these warnings later.
See "/private/var/folders/sk/s5rpkp151bn8mjblpzqbdw5r0000gp/T/ng-22f6Fq/angular-errors.log" for further details.
当前运行的节点版本v14.17.0。我的package.json 中还有什么其他内容吗?在我的项目中更新 Angular 之前,我应该先考虑更新,以使此升级能够正确执行?
编辑:这是我的package.json 依赖项:
"dependencies": {
"@angular/common": "~12.0.1",
"@angular/core": "~12.0.1",
"@angular/forms": "~12.0.1",
"@angular/platform-browser": "~12.0.1",
"@angular/platform-browser-dynamic": "~12.0.1",
"@angular/router": "~12.0.1",
"@capacitor-community/admob": "^3.2.0",
"@capacitor-community/stripe": "^3.4.0",
"@capacitor/android": "3.1.2",
"@capacitor/app": "1.0.2",
"@capacitor/camera": "^1.2.0",
"@capacitor/clipboard": "^1.0.3",
"@capacitor/core": "^3.3.0",
"@capacitor/device": "^1.0.3",
"@capacitor/filesystem": "^1.0.2",
"@capacitor/haptics": "^1.0.2",
"@capacitor/ios": "3.3.1",
"@capacitor/keyboard": "1.0.2",
"@capacitor/share": "^1.0.4",
"@capacitor/splash-screen": "^1.0.2",
"@capacitor/status-bar": "^1.0.2",
"@capacitor/storage": "^1.0.3",
"@ionic-native/core": "^5.34.0",
"@ionic-native/onesignal": "^5.34.0",
"@ionic/angular": "^6.1.6",
"jwt-decode": "^3.1.2",
"onesignal-cordova-plugin": "^2.11.4",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~12.0.1",
"@angular-eslint/builder": "~12.0.0",
"@angular-eslint/eslint-plugin": "~12.0.0",
"@angular-eslint/eslint-plugin-template": "~12.0.0",
"@angular-eslint/template-parser": "~12.0.0",
"@angular/cli": "~12.0.1",
"@angular/compiler": "~12.0.1",
"@angular/compiler-cli": "~12.0.1",
"@angular/language-service": "~12.0.1",
"@capacitor/cli": "^3.3.0",
"@ionic/angular-toolkit": "^4.0.0",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "4.16.1",
"@typescript-eslint/parser": "4.16.1",
"eslint": "^7.6.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jsdoc": "30.7.6",
"eslint-plugin-prefer-arrow": "1.2.2",
"jasmine-core": "~3.7.1",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~6.3.2",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.0.3",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"typescript": "~4.2.4"
},
【问题讨论】:
-
你还没有分享你的 package.json...我们怎么知道?
-
@HereticMonkey - 抱歉,我试图编辑我的帖子以包含。它现在在那里。
-
为了忽略对等依赖并更新,执行以下命令:
ng update @angular/core@13 @angular/cli@13 --force -
你需要更新你的@angular-eslint,因为 12 和 13 版本之间存在重大变化(从使用 TSlint 到使用 ESLint)github.com/angular-eslint/angular-eslint
-
感谢@TomaszGolinski 的信息。我更新了原始帖子以包括我的
devDependencies,看起来我的项目已经在使用 ESLint。
标签: angular angular-cli