注意:2023年2月22日,最近发布了一个名为NGVM的绝佳工具。
它可能非常有用来维护Angular CLI版本。
更新于2018年10月23日,参考:如何在ng cli和angular更改版本时更新应用程序的最佳实践:
如果您使用的是Angular CLI 6+版本,请运行
ng update
,然后按照命令行提示操作。同时,查看此指南:更新您的Angular项目
最近我正在将我的项目从1.0.4
升级到1.3.0-beta
,但无论是哪个angular cli版本都适用。
所以首先按照https://github.com/angular/angular-cli#updating-angular-cli所说安装您想要升级项目的angular cli版本:
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@<put exact version here>
创建一个新的空白项目,名称为 ng new project-name
。你可以将新项目命名为与旧项目相同的“playground”项目,但确保它位于不同的文件夹中。
从旧项目中复制/替换 app
文件夹到你刚刚创建的新项目中。
将所有自定义更改应用到项目的其余所有文件中:
3a. 将旧项目中的所有与项目相关的npm包放入 package.json
中(使用比较工具);你的旧和新的package.json
之间的区别只会是@angular/cli@version
及其相关软件包版本,如karma
等。
3b. 使用比较工具(请参阅下面的更新),确保将所有cli相关文件中的自定义内容带入,如 .angular-cli.json
、.gitignore
、index.html
、src/polyfills.ts
、src/main.ts
、src/test.ts
等。
运行 npm install
或 yarn
。
测试所有 npm 脚本:
5a - 运行 ng serve
确保它可以工作,如果不能,请修复错误;
5b - 运行 ng build
确保它可以工作,如果不能,请修复错误;
5c - 运行 ng lint
确保它可以工作,如果不能,请修复错误;
5d - 运行 ng test
确保它可以工作,如果不能,请修复错误(在这个步骤中我发现了一个错误);
5e - 测试你的应用程序所依赖的所有其他npm脚本。
File changed
选项卡npm install / yarn
5(a-e)
测试更改请查看 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
rmdir /S/Q node_modules dist
- Chris22注意:如果您正在从 beta 或 RC 版本升级到 1.0,请查看1.0 更新指南。
AngularCLI 不支持自动更新 CLI 版本和现有项目的依赖项。然而,保持最新版本可能会非常有益,因为您可以获得最新功能、性能改进和错误修复。
我成功地通过以下步骤将我的项目从 v.1.1.0 升级到 v1.3.0:
使用最近安装的最新版本创建一个“升级项目”
$: ng new upgrade-project --skip-install
这将在新文件夹中创建项目并提交初始文件。
使用 Git 创建和应用升级补丁
您可以使用普通的 git format-patch / apply 或者您喜欢的 IDE(如 WebStorm)来完成
$: git format-patch -1 HEAD --stdout > cli-upgrade.patch
$: git apply cli-upgrade.patch
仔细查看更改并验证哪些是真正需要的
注意:您需要正确地合并修改后的文件
重新安装已更新的依赖项
在重新安装之前清除旧的依赖项[推荐]
$: rm -rf node_modules
安装依赖项
$: npm install
现在您的更新已经完成,下一步是验证所有内容是否按预期工作,并修复可能在过程中出现的小问题
在 CLI 成功更新以及其初始依赖项之后,您可以随意更新其他未默认安装的附加依赖项(例如 Angular Material)。
$: npm update @angular/material ...
以上两个答案都是正确的,基于同样的方法,这也是目前事实上的方式。
Angular CLI 有计划在即将发布的版本中添加更新功能。
要更新您的其他依赖项,可以通过将它们移动到第二个 package.json 中来实现优雅的方式。您可以使用 Yarn Workspaces 或 package-json-merge 来完成。更多信息请访问我的网站:https://www.rainerhahnekamp.com/en/updating-angular-cli-dependencies/
1.0.4
到1.2.4
所发生的破坏性变化,而只是说明如何在项目中重新安装/更新@angular/cli npm
包。 - angularrocks.com