【发布时间】:2017-10-11 10:25:36
【问题描述】:
使用ng --version 我得到了:
@angular/cli: 1.0.0
这不是可用的最新版本。
由于我的系统上全局安装了 Angular CLI,为了升级它,我尝试了:
npm update angular-cli -g
但它不起作用,因为它停留在 1.0.0 版本。
【问题讨论】:
标签: angular angular-cli
使用ng --version 我得到了:
@angular/cli: 1.0.0
这不是可用的最新版本。
由于我的系统上全局安装了 Angular CLI,为了升级它,我尝试了:
npm update angular-cli -g
但它不起作用,因为它停留在 1.0.0 版本。
【问题讨论】:
标签: angular angular-cli
在阅读了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
【讨论】:
npm uninstall -g @angular/cli,它在全球范围内删除了它。但是再次安装后,我得到了相同版本的6。
npm install -g @angular/cli
npm install -g @angular/cli@latest
ng --version
【讨论】:
ng --version
@latest 2021 年还需要升级吗?如果我已经在全局范围内安装了旧版本的 Angular CLI 并且不包含 @latest 标签会怎样?
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
注意:
更新全局包和本地包后,清除缓存以避免错误:
npm cache verify (recommended)
npm cache clean (for older npm versions)
以下是官方参考资料:
【讨论】:
npm cache clean --force 真的帮了我
以下方法对我有用:
npm uninstall -g @angular/cli
然后
npm cache verify
然后
npm install -g @angular/cli
我在 Windows 10 上工作,有时我也必须使用:npm cache clean --force。安装过程中如果没有问题就不需要做。
【讨论】:
@latest,默认是最新的。
这个命令可以正常工作:
npm upgrade -g @angular/cli
【讨论】:
如果您在管理全局 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 进行比较并在您当前的项目中应用更改。
步骤如下:
File changed标签npm install / yarn
npm scripts(更多细节在这里:https://stackoverflow.com/a/45431592/415078)【讨论】:
我照他说的做了,但是我的包没有更新 angular 版本,我知道这篇文章是关于angular-cli,但我认为这也有帮助。
-ng new projectname 创建一个新项目,该项目会生成一个包。-npm install。现在我的ng serve 又开始工作了,也许有更好的方法来做这一切,如果有人知道,请分享,因为这对所有需要更新的项目来说都很痛苦。
【讨论】:
要将 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
【讨论】:
就我而言,我已经使用 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,然后使用
npm install -g @angular/cli@latest
【讨论】: