如何使用 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

如何将 Angular CLI 升级到最新版本

全局 Angular CLI 版本大于本地版本

Windows 10 中的 npm 安装错误( npm install -g angular-cli )

升级 Angular 版本 5

如何在基于 angular-cli 的混合应用程序中使用 ng-annotate