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

Fra*_*rzi 102 angular-cli angular

使用ng --version我得到:

@ angular/cli:1.0.0

这不是最新版本.

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

npm update angular-cli -g

但它不起作用,因为它保持1.0.0版本.

Fra*_*rzi 688

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

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

npm uninstall -g angular-cli
npm cache clean or npm cache verify #(if npm > 5)
npm install -g @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

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

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

rm -rf node_modules
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
Run Code Online (Sandbox Code Playgroud)

感谢grizzm0GitHub上指出这一点.

更新CLI后,您可能也想更新Angular版本.

注意:如果要从旧版本更新到Angular CLI 6+,则可能需要阅读此内容.

编辑:此外,如果您仍然使用cli的1.x版本,则需要转换angular-cli.jsonangular.json,使用以下命令可以执行此操作:

ng update @angular/cli --from=1.7.4 --migrate-only
Run Code Online (Sandbox Code Playgroud)

(查看此内容以获取更多详情).

  • 2017年更新(npm @ 5):如果你真的需要清理你的缓存:"npm cache clean --force" (12认同)
  • 警惕警报:您可以在GitHub上的"版本"选项卡中找到有关版本之间更改的更多详细信息.链接:https://github.com/angular/angular-cli/releases (3认同)
  • 运行命令npm cache clean抛出错误'从npm @ 5开始,npm缓存会自动修复损坏问题,并保证从缓存中提取的数据有效.如果你想确保一切都是一致的,那就改用'npm cache verify'."如果你想强制,你可以添加--force (3认同)
  • 为什么卸载angular-cli而不是整个@ angular/cli? (2认同)
  • 对我不起作用,仍然有v 1.0.0 (2认同)
  • 奇怪,从A6升级到A7,全局安装@latest版本,结果还是一样的版本(6.2.4)。在 Mac 上,NPM 8.9.4。做了一个 `npm uninstall -g @angular/cli` 全局删除它。但是再次安装后,我得到了相同版本的6。 (2认同)

Pag*_*dio 146

ng6 + - > 7.0

更新RxJS(取决于RxJS 6.3)

npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
Run Code Online (Sandbox Code Playgroud)

去掉 rxjs-compat

然后更新核心包和Cli:

ng update @angular/cli @angular/core
Run Code Online (Sandbox Code Playgroud)

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

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

首先,更新你的Cli

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli
Run Code Online (Sandbox Code Playgroud)

然后,更新您的核心软件包

ng update @angular/core
Run Code Online (Sandbox Code Playgroud)

如果您使用RxJS,请运行

ng update rxjs
Run Code Online (Sandbox Code Playgroud)

它会将RxJS更新到版本6并rxjs-compat在引擎盖下安装它.

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

npm i rxjs-compat
npm i @angular-devkit/build-angular
Run Code Online (Sandbox Code Playgroud)

最后,检查您的版本

ng v
Run Code Online (Sandbox Code Playgroud)

生产构建注意事项:

NG6不再使用intlpolyfills.ts

//remove them to avoid errors
import 'intl';
import 'intl/locale-data/jsonp/en';
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

注意:

  1. 在编写时,Cli 1.6支持的Typescript版本高达2.5.3.
  2. 如果可用,使用@next将软件包更新为测试版.使用@latest获取最新的非beta版本.

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

npm cache verify (recommended)
npm cache clean (for older npm versions)
Run Code Online (Sandbox Code Playgroud)

以下是官方参考:

  1. 更新Cli
  2. 更新核心包核心包.

  • `npm cache clean --force`真的帮到了我 (4认同)

Kof*_*Yah 89

你可以简单地使用

npm install -g angular-cli - 如果是你的第一次

npm install -g @angular/cli@latest - 如果你已经安装,那么更新

  • 如果更新/升级后没有看到新版本,请尝试关闭并重新打开终端并再次运行“ng --version” (3认同)

小智 32

这个命令工作正常:

npm upgrade -g @angular/cli
Run Code Online (Sandbox Code Playgroud)

  • 这似乎将 CLI 升级到最新的次要版本。 (3认同)

Beh*_*lem 32

强大的命令安装并替换最后一个包.

我遇到了类似的问题.我修好了它.

 npm install -g @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

npm install --save-dev @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Ena*_*yat 17

以下方法对我有用:

npm uninstall -g @angular/cli
Run Code Online (Sandbox Code Playgroud)

然后

npm cache verify
Run Code Online (Sandbox Code Playgroud)

然后

npm install -g @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

我在Windows 10的工作,有时我不得不使用:npm cache clean --force为好.如果在安装过程中没有任何问题,则无需执行此操作.

  • 您不需要指定“@latest”,因为“最新”是默认值。 (2认同)

Leo*_*iva 14

除了@ShinDarth的答案.

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

  • 所以在做了@ShinDarth上面所说的,为了修复我的角度版本,我不得不创建一个新的项目-ng new projectname,生成一个包.
  • 复制新包,然后将新包粘贴到需要更新的所有项目包上(记得添加你的依赖项并在第一行更改名称)或者你可以手动更改版本而无需复制和粘贴.
  • 然后运行-npm install.

现在我ng serve再次工作,也许有更好的方法来做所有这些,如果有人知道,请分享,因为这对所有需要更新的项目都很痛苦.

  • sry,你说得对,但我需要50点声誉来评论你的答案. (6认同)

ARK*_*han 14

就我而言,我已使用 npm install --save-dev angular-cli 在本地安装了 angular-cli。
因此,当我使用 command 时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
Run Code Online (Sandbox Code Playgroud)


Kun*_*vič 13

更新:
CLI v6开始,您可以运行ng update以便将依赖项自动更新为新版本.

随着ng update有时你可能需要添加--force标志.如果这样做,请确保您当前的角度版本支持以这种方式安装的打字稿版本,否则您可能需要降级打字稿版本.

请查看本指南更新Angular项目update.angular.io


您需要做的就是使用angular-cli-diff进行差异并应用当前项目中的更改.

以下是步骤:

  1. 假设你从1.4开始.到1.5然后你做https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. 单击--all选项卡
  3. 将更改应用于当前项目.
  4. File changed/npm install
  5. 全部测试yarn(更多详情: https ://stackoverflow.com/a/45431592/415078)


Has*_*thi 8

要将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
Run Code Online (Sandbox Code Playgroud)

本地项目包:

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
Run Code Online (Sandbox Code Playgroud)

资料来源:Github