如何将 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
,但我认为这也有帮助。
-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 clinpm install -g @angular/cli@latest
【讨论】:
以上是关于如何将 Angular CLI 升级到最新版本的主要内容,如果未能解决你的问题,请参考以下文章