如何使用 Angular cli 升级 Angular 的次要版本
Posted
技术标签:
【中文标题】如何使用 Angular cli 升级 Angular 的次要版本【英文标题】:How to upgrade minor version of angular using angular cli 【发布时间】:2017-12-23 12:24:52 【问题描述】:这是一个简单的问题,但我很难通过 Google 找到答案...
我有一个 Angular 4 项目(使用 Angular cli 创建)并希望使用刚刚在 4.3 中发布的 http 拦截器。
如何使用 Angular cli 升级到这个次要版本?
【问题讨论】:
【参考方案1】:在某些情况下,ng update
不会通过次要版本更新来更新 Angular 核心依赖项。
我遇到了一个尝试从 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 命令的结果。
【讨论】:
【参考方案2】:主要版本角度更新应使用ng update。
npm update
用于更新 Angular 次要/补丁版本有一个缺点:它还会更新其他不相关的包。
您可以使用 npm-check-updates 仅更新特定软件包,并且可以选择针对补丁/次要/主要版本。
此命令将更新所有 Angular 包的次要(和补丁)版本(但会保留主要版本):
npx npm-check-updates --upgrade --target "minor" --filter "/@angular.*/"
该命令为您提供新版本的预览并相应地更新 package.json:
之后你可以运行npm install
。
【讨论】:
这个对于小更新非常方便,谢谢!【参考方案3】:在我的 Angular CLI 项目中,我使用 npm update
来更新我的依赖项。使用npm outdated
,您可以查看所有过时的依赖项。
2018 年 6 月更新
如果您使用的是 Angular CLI 版本 6+,则可以使用新的 ng update <packagename>
命令更新您的依赖项。
⚠️ 这将更新到最新的 主要 版本。如果你不想坚持npm update
。 ⚠️
https://angular.io/guide/updating
对于简单的更新,您只需要 CLI 命令
ng update
。在没有其他参数的情况下,ng update
列出了可供您使用的更新,并提供了将您的应用程序更新到最新版本的推荐步骤。
【讨论】:
啊,是的。 npm outdated 也很有用! 它没有更新 package.json,有什么想法吗? 如果升级到 npm 5,就不必再键入 --save 了;它成为默认值。让生活更轻松。 :) 见blog.npmjs.org/post/161081169345/v500 ng update 命令应该只更新次要版本吗?它为我升级了主要版本(从 7.2.0 到 8.0.0)。 @TrevorKarjanis 是的,这也将更新主要版本(并执行更新所需的大多数代码更改)。我已经编辑了帖子以反映这一点。如果您想坚持相同的主要版本,请使用npm update
并确保您的package.json
中有相应的版本范围:请参阅docs.npmjs.com/misc/semver#caret-ranges-123-025-004以上是关于如何使用 Angular cli 升级 Angular 的次要版本的主要内容,如果未能解决你的问题,请参考以下文章
在开发环境中使用 Angular CLI 连接 express.js