更新 Angular 项目的所有依赖项

问题描述 投票:0回答:1

目前我正在处理一个 Angular 项目,该项目具有以下版本的依赖项:

Angular: 12
Node: 14.21.2
capacitor/andorid: 4.5.0
capacitor/app: 1.0.6
...
Angular CLI (ng version): Node.js version v14.21.3 detected. The Angular CLI requires a minimum of v16.13 -> this message occures because I only have updated node

现在我想将项目更新到 Angular 16 和所有依赖项(尤其是电容器、Node 和 Angular CLI),以便将所有内容整合在一起。 我现在的问题是如何做到这一点,因为我不知道例如哪个电容器版本适合 Angular 16 版本等等。 是否有任何命令可以更新 package.json 文件,以便所有版本都适合在一起,或者如何更新所有依赖项,最终一切正常?

这是我的 package.json 文件:

 {
 "name": "my-app",
 "version": "0.0.1",
 "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "~12.1.1",
    "@angular/core": "~12.1.1",
    "@angular/forms": "~12.1.1",
    "@angular/platform-browser": "~12.1.1",
    "@angular/platform-browser-dynamic": "~12.1.1",
    "@angular/router": "~12.1.1",
    "@capacitor/android": "4.5.0",
    "@capacitor/app": "1.0.6",
    "@capacitor/haptics": "1.1.3",
    "@capacitor/keyboard": "1.1.3",
    "@capacitor/push-notifications": "^5.0.6",
    "@capacitor/splash-screen": "^4.1.4",
    "@capacitor/status-bar": "1.0.6",
    "@capgo/capacitor-updater": "^4.17.46",
    "@ionic/angular": "^5.5.2",
    "@ionic/storage-angular": "^3.0.6",
    "@ngx-translate/core": "^14.0.0",
    "@ngx-translate/http-loader": "^7.0.0",
    "ionic-color-picker": "^1.0.3",
    "moment": "^2.29.4",
    "rxjs": "^6.6.7",
    "tslib": "^2.2.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~12.1.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.1.1",
    "@angular/compiler": "~12.1.1",
    "@angular/compiler-cli": "~12.1.1",
    "@angular/language-service": "~12.0.1",
    "@capacitor/cli": "^4.5.0",
    "@capacitor/core": "^4.5.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.8.0",
    "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"
  },
  "description": "myApp"
}
node.js angular angular-cli capacitor
1个回答
0
投票

Angular 在这里提供了用于升级 Angular 的优秀文档:https://update.angular.io/

我建议您阅读文档,但我将提供带有一些提示的摘要。首先,您需要升级到 Node 18 或 20。v14 已经停产,16 将于 2023 年 9 月发布。

对于 Angular 软件包,您可以运行

ng update @angular/cli@X
,其中 X 是您要升级到的版本,这会升级所有 Angular 软件包。但通常情况下,如果您有第三方库,您将需要使用强制标志,因为不兼容的对等依赖关系将导致它失败:

ng update @angular/cli@16 --force

然后更新您的对等依赖项。原理图应该考虑到大多数重大更改,但请务必通读清单并修复原理图遗漏的任何内容。

对于 Capacitor 和 Capacitor 插件,它们与 Angular 完全无关,因此您可以单独升级它们。

© www.soinside.com 2019 - 2024. All rights reserved.