这是一个简单的问题,但我正在努力通过谷歌找到答案......
我有一个 Angular 4 项目(使用 Angular cli 创建),想利用 4.3 中刚刚发布的 http 拦截器。
如何使用 Angular cli 升级到此次要版本?
主要版本角度更新应通过 ng update 完成。
npm update
用于更新角度次要/补丁版本有一个缺点:它还会更新其他不相关的软件包。
您可以使用 npm-check-updates 仅更新特定的软件包,并且您可以选择针对补丁/次要/主要版本。
此命令将更新所有 Angular 包次要(和补丁)版本(但它将保留主要版本):
npx npm-check-updates --upgrade --target "minor" --filter "/@angular.*/"
该命令为您提供新版本的预览并相应地更新 package.json:
之后就可以运行
npm install
。
在我的 Angular CLI 项目中,我使用
npm update
来更新我的依赖项。使用 npm outdated
,您可以看到所有过时的依赖项。
如果您使用的是 Angular CLI 版本 6+,您可以使用新的
ng update <packagename>
命令来更新您的依赖项。
⚠️ 这将更新到最新的 major 版本。如果您不想这样做,请坚持使用
npm update
。 ⚠️
https://angular.io/guide/updating
对于简单的更新,CLI 命令
就足够了。如果没有其他参数,ng update
会列出您可用的更新,并提供将您的应用程序更新到最新版本的建议步骤。ng update
对我来说,从 Angular 16.0.0 升级到 16.1.6 可以通过以下方式完成:
ng update @angular/cli@16 @angular/core@16
我最近遇到了同样的问题(或者,我厌倦了每次角度更新时面对它),所以我做了一些谷歌搜索,发现了关于dependabot groups。
我已经在使用 dependentabot 来管理我的依赖项,但一次更新一个 Angular PR 仍然很烦人,npm 检查对 npm 安装失败感到不满意,直到所有 Angular 依赖项都是最新的(这导致创建一个单独的分支,执行本文中实际投票最高的答案的 npm 命令(非常有用!)并合并该分支)。
我在更新 Microsoft.whatever 后的 .NET 版本控制时也遇到了问题。我最终进行了 10 多次提交,每次只更新应用程序中的一行。 IMO 正在“破坏”git 历史,因为在我自己的项目中,dependabot 看起来会是比我更好的贡献者:D
我更新了我的文件,如下所示以对依赖项更新进行分组:
version: 2
updates:
- package-ecosystem: "npm"
directory: "ClientApp/"
schedule:
interval: "monthly"
open-pull-requests-limit: 10
groups:
angular:
patterns:
- "@angular*"
fontawesome:
patterns:
- "@fortawesome*"
请参阅其他 dependabot 配置的文档
在某些情况下
ng update
不会通过次要版本更新来更新角度核心依赖项。
我遇到过尝试从 Angular 6.0.0 更新到 6.1.0 的案例,但没有成功。
我只解决了这个问题:
删除项目
node_modules
目录
在
package.json
所有角度核心依赖库中手动更改:
common, compiler, compiler-cli, core, forms, http
platform-browser, platform-browser-dynamic, router
就像这里的最后 4 行:
"dependencies": {
"@agm/core": "~1.0.0-beta.3",
"@angular/animations": "^6.0.9",
"@angular/cdk": "^6.4.0",
"@angular/cli": "^6.2.9",
"@angular/common": "^6.1.x",
"@angular/core": "^6.1.x",
"@angular/forms": "^6.1.x",
"@angular/http": "^6.1.x",
也请参阅
devdependencies
中的 compiler, compiler-cli
。
运行
npm install
来重建 node_modules
。
在此之后,我们得到了从 6.0.0 到 6.1.10 的
ng --version
cli 命令的结果。