【问题标题】:Upgrading Angular in 20222022 年升级 Angular
【发布时间】:2022-02-11 22:11:56
【问题描述】:

我读过https://update.angular.io/?v=12.0-13.0 所以在 Visual Studio 中

npx @angular/cli@13 update @angular/core@13 @angular/cli@13

一切看起来都不错,但我对不同地方列出的各种版本感到困惑。

> ng v

表演

...
Angular CLI: 13.2.3
Node: 14.18.0
Package Manager: npm 6.14.15
OS: win32 x64

Angular: 13.2.2
... animations, cdk, common, compiler, compiler-cli, core, forms
... language-service, material, platform-browser
... platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1302.3
@angular-devkit/build-angular   13.2.3
@angular-devkit/core            12.1.4
@angular-devkit/schematics      12.1.4
@angular/cli                    13.2.3
@schematics/angular             12.1.4
rxjs                            6.6.7
typescript                      4.5.5

嗯,我猜这 12 个都还好,但我不知道。他们是吗?我应该升级吗?如何升级?

但如果我尝试

> npm outdated -g
Package       Current   Wanted  Latest  Location
@angular/cli   12.2.4  12.2.16  13.2.3  global

在 Visual Studio 之外,有人告诉我 ng 使用的是 12 版。

> ng v
Angular CLI: 12.2.4
[...]
Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.1202.4 (cli-only)
@angular-devkit/core         12.2.4 (cli-only)
@angular-devkit/schematics   12.2.4 (cli-only)
@schematics/angular          12.2.4 (cli-only)

为什么两个不同的 ng v 命令和 npm outdated 看起来不同(或者我对 ng v 的理解不正确)以及我可以做些什么来理顺这些事情以便我可以使用所有最新的东西?

【问题讨论】:

    标签: node.js angular npm angular-cli


    【解决方案1】:

    你可以在两个地方(本地项目和全局)有两个不同的版本,这是正常的。

    原因是你已经在全局安装了一次 Angular(当你在任何地方运行 ng v 时显示的版本,而不是本地项目)以及当你使用 ng 创建一个新项目时new 将采用全局版本,但将具有单独的 node_modules,仅用于创建的新项目的本地。

    现在,如果您更新已创建项目中的版本,则只会更新该项目的本地版本,全局 Angular 版本将保持不变。

    为了更新全局版本,您可以使用相同的命令来实现,但只需使用 -g 作为参数。

    以及您最新问题的答案:

    ng v 在本地项目之外运行会得到与 npm outdated -g 相同的结果 - 考虑全局版本。

    ng v 在本地项目中运行应该得到与 npm outdated 在本地项目中运行相同的结果 - 考虑本地项目版本。

    【讨论】:

    • 感谢您的解释。我不确定我是否理解如何前进。我想做的就是使用最新的一切。我不认为我正在尝试做任何棘手的事情,但是 npm update 尊重 package.json 我使用什么命令来尽可能地获取最新的所有内容,然后对其进行测试,如果它运行,我将合并分支?
    • 如果您还希望全局版本是最新的,只需运行以下命令:npm uninstall -g @angular/cli 和 npm install -g @angular/cli@latest 如果你使用 Linux,你可能需要在它前面加上 sudo。其余的都很好,如果您的应用程序运行良好,您可以合并它。为了测试应用程序,使用 ng serve 运行并单击,也可以尝试 ng build --prod 来检查构建是否成功。您也可以考虑运行单元或 e2e 测试(如果有的话)以确认它们。
    • 但没有任何内容是最新的。一切都只相信 package.json 中的规范,这将其限制在 package.json 中指定的主要 ^M.m.p 限制我从我正在阅读角度文档的命令开始。 npx @angular/cli@13 update @angular/core@13 @angular/cli@13 但只能达到高 V12。 uninstall 和 install 是唯一可以超越主要修订级别的内容吗?我有 21 个应用程序包和 3 个全局包,它们落后于 1 个或多个主要版本,我真的不明白一个系统的方法来让它们全部更新。
    • 我不明白你是如何得出结论它只适用于高 v12。正如我从您的原始问题中看到的那样,您已将本地项目应用程序版本更新为 13。唯一剩下的是全局版本。请再次阅读我的 cmets,您是否尝试运行 npm uninstall -g @angular/cli 和 npm install -g @angular/cli@latest ?
    • npm outdated -g 表明没有什么过时的! (我们不会遇到一个附带问题,因为我以某种方式损坏了我的 npm 安装并不得不重新安装)。现在我必须弄清楚如何处理 20 个过时的本地软件包……npm outdated 我想我会为此提出一个新问题。感谢您的帮助。
    猜你喜欢
    • 2018-11-01
    • 1970-01-01
    • 2023-03-28
    • 2021-12-24
    • 2022-07-06
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2015-03-23
    相关资源
    最近更新 更多