ChatGPT解决这个技术问题 Extra ChatGPT

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

这个问题的答案是社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。

使用 ng --version 我得到:

@角/cli:1.0.0

这不是可用的最新版本。

由于我的系统上全局安装了 Angular CLI,为了升级它,我尝试了:

npm update angular-cli -g

但它不起作用,因为它停留在 1.0.0 版本。


E
Elias Strehle

在阅读了 GitHub 存储库上报告的一些问题后,我找到了解决方案。

为了更新系统中全局安装的 angular-cli 包,您需要运行:

npm uninstall -g @angular/cli
npm install -g @angular/cli@latest

根据您的系统,您可能需要在上述命令前加上 sudo

此外,您很可能还想更新本地项目版本,因为在您的项目目录中,它将以比全局版本更高的优先级选择:

rm -rf node_modules
npm uninstall --save-dev @angular/cli
npm install --save-dev @angular/cli@latest
npm install

感谢 grizzm0GitHub 上指出这一点。

更新您的 CLI 后,您可能还想update your Angular version

注意:如果您要从旧版本更新到 Angular CLI 6+,您可能需要阅读this

编辑:此外,如果您仍在使用 1.x 版本的 cli,则需要将 angular-cli.json 转换为 angular.json,您可以使用以下命令完成此操作(检查 { 1}更多细节):

ng update @angular/cli --from=1.7.4 --migrate-only

Pedantic alert:您可以在 GitHub 上的 Releases 选项卡中找到有关版本之间更改的更多详细信息。链接:github.com/angular/angular-cli/releases
2017 年更新 (npm@5):如果您真的需要清理缓存:“npm cache clean --force”
为什么要卸载 angular-cli 而不是整个 @angular/cli?
运行命令 npm cache clean 会抛出错误 '从 npm@5 开始,npm 缓存会从损坏问题中自我修复,并且保证从缓存中提取的数据是有效的。如果您想确保一切一致,请改用“npm cache verify”。 "如果要强制,可以加--force
奇怪的是,从 A6 更新到 A7,在全局安装 @latest 版本时,我最终得到了相同的版本(6.2.4)。在 Mac 上,NPM 8.9.4。做了一个 npm uninstall -g @angular/cli 将其全局删除。但是再次安装后,我得到了相同版本的6。
C
Christopher Peisert

初次使用者:

npm install -g @angular/cli

更新/升级:

npm install -g @angular/cli@latest

查看:

ng --version

请参阅documentation


如果更新/升级后看不到新版本,请尝试关闭并重新打开终端并再次运行 ng --version
谢谢。 @latest 是否还需要在 2021 年升级?如果我已经全局安装了旧版本的 Angular CLI 并且不包含 @latest 标记,会发生什么情况?
是的,你也可以在 2021 年或 2022 年运行“npx @angular/cli@13 update @angular/core@13 @angular/cli@13”,这应该会将你带到 Angular 的第 13 版,因为 Angular 现在使用 TypeScript 4.4并且是版本 13。update.angular.io/?l=3&v=12.0-13.0
S
Scottie

ng6+ -> 7.0

更新 RxJS(取决于 RxJS 6.3)

npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json

移除 rxjs-compat

然后更新核心包和 Cli:

ng update @angular/cli @angular/core

(可选:将 Node.js 更新到 NG7 支持的版本 10)

ng6+ (Cli 6.0+): 简化命令

首先,更新您的 Cli

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli

然后,更新您的核心包

ng update @angular/core

如果你使用 RxJS,运行

ng update rxjs

它将 RxJS 更新到版本 6 并在后台安装 rxjs-compat 包。

如果遇到构建错误,请尝试手动安装:

npm i rxjs-compat
npm i @angular-devkit/build-angular

最后,检查您的版本

ng v

生产构建注意事项:

ng6 在 polyfills.ts 中不再使用 intl

//remove them to avoid errors
import 'intl';
import 'intl/locale-data/jsonp/en';

ng5+ (Cli 1.5+)

npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@next typescript@2.4.2 rxjs@'^5.5.2'
npm install typescript@2.4.2 --save-exact

笔记:

截至撰写本文时,Cli 1.6 支持的 Typescript 版本最高为 2.5.3。使用 @next 将包更新为 beta(如果可用)。使用 @latest 获取最新的非 beta 版本。

更新全局和本地包后,清除缓存以避免错误:

npm cache verify (recommended)
npm cache clean (for older npm versions)

以下是官方参考资料:

更新 Cli 更新核心包核心包。


npm cache clean --force 真的帮助了我
为什么哦,为什么发行说明中没有这部分!
您能否确认您所说的 RxJS 6 已被弃用。在我看来,v6 似乎是最新的稳定版本 github.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
@JoeyGough 不错的收获! Ng7 依赖于 rxjs 6.3。谢谢你的评论。参考:github.com/angular/angular/blob/master/…
E
Enayat

以下方法对我有用:

npm uninstall -g @angular/cli

然后

npm cache verify

然后

npm install -g @angular/cli

我在 Windows 10 上工作,有时我也必须使用:npm cache clean --force。如果在安装过程中没有任何问题,则无需这样做。


您不需要指定 @latest,因为 latest 是默认设置。
如果此解决方案不适合您:stackoverflow.com/a/58678941/8718377
B
BehrouzMoslem

强大的命令安装和替换最后一个包。

我有一个类似的问题。我修好了它。

 npm install -g @angular/cli@latest

npm install --save-dev @angular/cli@latest

https://i.stack.imgur.com/BJMHd.png


这将适用于本地 Angular CLI,检查我的答案以升级全局
升级了我的全局 cli
D
Derlin

此命令工作正常:

npm upgrade -g @angular/cli

这似乎将 CLI 升级到最新的次要版本。
a
angularrocks.com

如果您在管理 global CLI 版本时遇到任何困难,最好使用 NVM:MACWindows

要更新 Angular 项目中的本地 CLI,请执行以下步骤:

CLI v6 开始,您只需运行 ng update 即可将您的依赖项自动更新到新版本。

ng update @angular/cli

有时您可能希望使用 ng update 添加 --force 标志。

您还可以传递 --all 标志以同时升级所有软件包。

ng update --all --force

如果您只想迁移 CLI,只需运行以下命令:

ng update @angular/cli --migrateOnly

您还可以传递标志 --from=from - 从中迁移的版本,例如 --from=1.7.4。此标志仅在更新单个包时可用,并且仅在迁移时可用。

更新完成后,确保您安装的 typescript 版本受当前 angular 版本的支持,否则您可能需要降级 typescript 版本。还要记住,通常最新版本的 Angular 不支持最新版本的打字稿。在此处查看 Angular CLI / Angular / NodeJS / Typescript 兼容性版本

另请查看本指南 Updating your Angular projectsupdate.angular.io

旧答案:
您需要做的就是与 angular-cli-diff 进行比较并在当前项目中应用更改。

以下是步骤:

假设你从 1.4 开始。到 1.5 然后你做 https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0 单击文件更改选项卡将更改应用到当前项目。 npm install / yarn 测试所有 npm 脚本(更多细节在这里:https://stackoverflow.com/a/45431592/415078)


A
Alexander Abakumov

除了 @ShinDarth answer

我照他说的做了,但我的包没有更新 angular 版本,我知道这篇文章是关于 angular-cli,但我认为这也有帮助。

所以在做了上面@ShinDarth所说的之后,要修复我的角度版本,我必须使用 -ng new projectname 创建一个新项目,该项目生成一个包。

复制新包,然后将新包粘贴到所有需要更新的项目包上(请记住添加您拥有的依赖项并在第一行更改名称),或者您可以手动更改版本而无需复制和粘贴。

然后运行 -npm 安装。

现在我的ng serve又开始工作了,也许有更好的方法来做这一切,如果有人知道,请分享,因为这对所有需要更新的项目来说都是一件痛苦的事情。


看起来更像是我的答案而不是答案,所以也许您可以将其作为评论移到我的答案下方?
对不起,你是对的,但我需要 50 名声望才能对你的回答发表评论。
R
Random

就我而言,我已经使用 npm install --save-dev angular-cli 在本地安装了 angular-cli。
所以,当我使用命令 npm install -g @angular/cli 时,它会生成错误提示

您的全局 Angular CLI 版本 (1.7.3) 高于本地版本 (1.4.9)

请注意 angular-cli、@angular/cli 和 @angular/cli@latest 是两个不同的 cli。解决这个问题的方法是卸载所有 cli,然后使用安装最新的 angular cli

npm install -g @angular/cli@latest

H
Hasan Fathi

要将 Angular CLI 更新到新版本,您必须同时更新全局包和项目的本地包。

全球套餐:

npm uninstall -g @angular/cli
npm cache clean
# if npm version is > 5 then use `npm cache verify` to avoid errors (or to avoid using --force)
npm install -g @angular/cli@latest

本地项目包:

rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install

来源:Github