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

Posted

技术标签:

【中文标题】如何将 Angular CLI 升级到最新版本【英文标题】:How to upgrade Angular CLI to the latest version 【发布时间】:2017-10-11 10:25:36 【问题描述】:

使用ng --version 我得到了:

@angular/cli: 1.0.0

这不是可用的最新版本。

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

npm update angular-cli -g

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

【问题讨论】:

【参考方案1】:

在阅读了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

感谢 grizzm0 在 GitHub 上指出这一点。

更新 CLI 后,您可能也想update your Angular version。

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

编辑:另外,如果您还在使用 1.x 版本的 cli,您需要将您的 angular-cli.json 转换为 angular.json,您可以使用以下命令进行操作(查看this了解更多详情):

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

【讨论】:

迂腐警告:您可以在 GitHub 上的“发布”选项卡中找到有关版本之间更改的更多详细信息。链接: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。【参考方案2】:

初次使用者:

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" 这应该会带你到版本 13 Angular 现在使用 TypeScript 4.4 并且是 13 版。update.angular.io/?l=3&v=12.0-13.0【参考方案3】:

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 获取最新的非测试版。

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

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

以下是官方参考资料:

    更新Cli 更新核心包core package。

【讨论】:

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/…【参考方案4】:

以下方法对我有用:

npm uninstall -g @angular/cli

然后

npm cache verify

然后

npm install -g @angular/cli

我在 Windows 10 上工作,有时我也必须使用:npm cache clean --force。安装过程中如果没有问题就不需要做。

【讨论】:

你不需要指定@latest,默认是最新的。 如果此解决方案不适合您:***.com/a/58678941/8718377【参考方案5】:

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

我遇到了类似的问题。我修好了。

 npm install -g @angular/cli@latest

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

【讨论】:

这适用于本地 Angular CLI,请查看我的回答以升级全局 升级了我的全局cli【参考方案6】:

这个命令可以正常工作:

npm upgrade -g @angular/cli

【讨论】:

这似乎将 CLI 升级到最新的次要版本。【参考方案7】:

如果您在管理全局 CLI 版本时遇到任何困难,最好使用 NVM:MAC、Windows。

要更新 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。此标志仅在更新单个包时可用,并且仅在迁移时可用。

更新完成后,确保您获得的打字稿版本 您当前的角度版本支持安装, 否则您可能需要降级打字稿版本。还要记住,通常最新版本的 Angular 不支持最新版本的打字稿。

结帐Angular CLI / Angular / NodeJS / Typescript兼容版本here

还可以查看本指南 Updating your Angular projects 和 update.angular.io


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

步骤如下:

    假设您从 1.4 开始。到 1.5 然后你做https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0 点击File changed标签 将更改应用到您当前的项目。 npm install / yarn 测试所有npm scripts更多细节在这里:https://***.com/a/45431592/415078)

【讨论】:

【参考方案8】:

除了@ShinDarth answer。

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

所以在按照上面@ShinDarth 所说的进行操作后,要修复我的角度版本,我必须使用-ng new projectname 创建一个新项目,该项目会生成一个包。 复制新包,然后将新包粘贴到所有需要更新的项目包上(记得添加您拥有的依赖项并在第一行更改名称),或者您可以手动更改版本而无需复制和粘贴。李> 然后运行-npm install

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

【讨论】:

看起来更像是对我的答案的补充而不是答案,所以也许您可以将其作为评论移到我的答案下方? sry,你是对的,但我需要 50 声望才能对你的回答发表评论。【参考方案9】:

要将 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

【讨论】:

【参考方案10】:

就我而言,我已经使用 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

【讨论】:

以上是关于如何将 Angular CLI 升级到最新版本的主要内容,如果未能解决你的问题,请参考以下文章

如何正确将 angular 2 (npm) 升级到最新版本?

如何将我的全局 vue-cli 安装升级到最新版本?

如何将 Angular 最新版本更改为旧版本?

Ionic CLI 升级到最新版本

角度 - 从材料 5 升级到材料 7,无需 cli

安装特定版本的 ng cli