升级 ng-jhipster 库以兼容 Angular 16.2.0

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

我正在开发一个依赖 ng-jhipster 库的 Angular 应用程序,特别是版本 0.16.0。这是 ng-jhipster 的 package.json 中的相关部分:

{
  "name": "ng-jhipster",
  "description": "A Jhipster util library for Angular",
  "repository": {
    "type": "git",
    "url": "https://github.com/jhipster/ng-jhipster.git"
  },
  "keywords": [
    "jhipster",
    "angular",
    "angular2"
  ],
  "author": "Deepu KS",
  "license": "Apache-2.0",
  "bugs": {
    "url": "https://github.com/jhipster/generator-jhipster/issues"
  },
  "homepage": "https://www.jhipster.tech",
  "peerDependencies": {
    "@angular/core": "^10.0.0",
    "@angular/router": "^10.0.0",
    "@angular/common": "^10.0.0",
    "@angular/forms": "^10.0.0",
    "@ng-bootstrap/ng-bootstrap": "^6.1.0 || ^7.0.0",
    "@ngx-translate/core": "^12.1.2 || ^13.0.0",
    "@ngx-translate/http-loader": "^5.0.0 || ^6.0.0",
    "@fortawesome/angular-fontawesome": "^0.6.1 || ^0.7.0",
    "@fortawesome/fontawesome-svg-core": "^1.2.21",
    "@fortawesome/free-solid-svg-icons": "^5.10.1",
    "rxjs": "^6.5.2"
  },
  "devDependencies": {
    "@angular/animations": "^10.0.0",
    "@angular/common": "^10.0.0",
    "@angular/compiler": "^10.0.0",
    "@angular/compiler-cli": "^10.0.0",
    "@angular/core": "^10.0.0",
    "@angular/forms": "^10.0.0",
    "@angular/platform-browser": "^10.0.0",
    "@angular/platform-browser-dynamic": "^10.0.0",
    "@angular/platform-server": "^10.0.0",
    "@angular/router": "^10.0.0",
    "@fortawesome/angular-fontawesome": "0.6.1",
    "@fortawesome/fontawesome-svg-core": "^1.2.28",
    "@fortawesome/free-solid-svg-icons": "^5.13.0",
    "@ng-bootstrap/ng-bootstrap": "^6.0.0",
    "@ngx-translate/core": "^12.1.1",
    "@ngx-translate/http-loader": "^5.0.0",
    "@types/jest": "26.0.3",
    "@types/node": "13.13.4",
    "@typescript-eslint/eslint-plugin": "^2.30.0",
    "@typescript-eslint/eslint-plugin-tslint": "^2.30.0",
    "@typescript-eslint/parser": "^2.30.0",
    "codelyzer": "^5.2.1",
    "core-js": "^3.6.4",
    "eslint": "^6.8.0",
    "eslint-config-jhipster": "0.0.1",
    "eslint-config-prettier": "^6.10.0",
    "husky": "4.2.5",
    "jest": "26.1.0",
    "jest-preset-angular": "8.2.1",
    "lint-staged": "9.2.3",
    "ng-packagr": "^10.0.0",
    "prettier": "^2.0.5",
    "reflect-metadata": "0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^6.5.4",
    "tsickle": "0.36.0",
    "tslint": "^6.0.0",
    "typescript": "3.9.5",
    "zone.js": "0.10.2"
  },
  "version": "0.16.0",
  "lint-staged": {
    "{,src/**/}*.{md,json,ts,html}": [
      "prettier --write",
      "git add"
    ]
  },
  "scripts": {
    "cleanup": "rimraf dist/*",
    "format": "prettier --write \"{,src/**/}*.{md,json,ts,html}\"",
    "lint": "eslint . --ext .ts",
    "lint:fix": "npm run lint -- --fix",
    "test": "npm run lint && jest --config tests/jest.conf.js",
    "test:watch": "npm run test -- --watch",
    "build": "ng-packagr -p ng-package.prod.json",
    "build:dev": "ng-packagr -p ng-package.dev.json --watch",
    "release": "git push && git push --tags && npm publish dist/",
    "clean-release": "npm run cleanup && npm run build && npm run release",
    "release:patch": "npm test && npm version patch -a -m \"Update to %s\" && npm run clean-release",
    "release:minor": "npm test && npm version minor -a -m \"Update to %s\" && npm run clean-release",
    "release:major": "npm test && npm version major -a -m \"Update to %s\" && npm run clean-release"
  }
}

挑战是我的 Angular 应用程序需要升级到最新版本 16.2.0。然而,ng-jhipster 已经大约 4 年没有更新了,目前支持 Angular 到版本 10.0.0。

考虑到这种情况,升级 ng-jhipster 以与 Angular 16.2.0 兼容的建议步骤或最佳实践是什么?任何与此相关的见解或经验将不胜感激!

angular jhipster
1个回答
0
投票

JHipster Angular 库现在是生成项目的一部分,您可以在src/main/webapp/app/shared等不同文件夹中的

示例应用程序
中看到它的运行情况。

所以你有 4 个选择:

  1. 您使用新的 jhipster 类,将它们复制到您的项目并调整您的代码
  2. 您克隆 ng-jhipster 库的 git 存储库来 fork 它,使其适应最新版本的 Angular 和其他 deps,并自行构建库。
  3. #2 的变体:如果您不想管理库,则将 ng-jhipster 源导入到您自己的项目中
  4. 最后一个替代方案适用于简单的项目:生成一个新项目并将自定义代码导入其中。

就我个人而言,在我最初生成项目后 3 个月,我确实遵循了选项 #3,我的策略是一旦我的项目足够成熟就减少对 JHipster 的依赖,我从不后悔。那是3年前的事了。

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