如何正确地将angular度2(npm)升级到最新版本?
最近,我在https://angular.io/docs/ts/latest/tutorial/上开始了Angular 2教程。
并停止与Angular 2testing版8.现在我恢复了教程和最新的testing版是testing版14。
如果我只是做npm更新一些模块(预先加载的教程)更新,但不是Angular2(我可以看到,与npm ls )。
如果我做npm更新angular度2或npm更新angular2@2.0.0beta.14它什么都不做。
命令npm update -D && npm update -S
会根据其定义的版本范围将package.json
中的所有软件包更新为最新版本。 你可以在这里阅读更多。
如果你想从2.0.0-rc.1
之前的版本更新Angular,那么你需要手动编辑package.json
,因为Angular被分割成几个npm模块。 没有这个,因为angular2包指向2.0.0-beta.21
,你永远不会使用最新版本的Angular。
在快速入门资源库中可以find包含一些最常用模块的列表。
笔记:
-
与你的软件包的最新版本保持
npm outdated
一个很酷的方法是使用npm outdated
,它显示所有过期的软件包以及他们想要的和最新的版本。 -
我们需要链接两个命令
npm update -D
和npm update -S
是为了克服这个bug,直到它被修复。
我用于迁移的另一个不错的软件包Angular2的testing版本到Angular2 2.0.0 final
是npm-check-updates
它显示了package.json中指定的所有软件包的最新可用版本。 与npm outdated
不同的是,它也可以编辑你的package.json,使你稍后可以进行npm upgrade
。
安装
sudo npm install -g npm-check-updates
用法
展示
ncu -u
重写你的package.json
仅适用于bash用户
如果你是在Mac/Linux
或在Windows
上运行bash(这不会在默认的Windows CMD
),你可以运行该oneliner:
npm install @angular/{animations,common,compiler,core,forms,http,platform-browser,platform-browser-dynamic,router,compiler-cli}@4.4.5 --save
yarn add @angular/{animations,common,compiler,core,forms,http,platform-browser,platform-browser-dynamic,router,compiler-cli}@4.4.5
只需指定你想要的版本,例如@ 4.4.5或者把@latest指定为最新版本
检查你的
package.json
只是为了确保你正在更新你所依赖的所有@angular/*
包
- 要在您的项目运行中查看确切的
@angular
版本:
npm ls @angular/compiler
或yarn list @angular/compiler
- 要检查在npm运行中可用的最新稳定的
@angular
版本:
npm show @angular/compiler version
npm官方页面提出了一个结构化方法来更新全局和本地场景的angular度版本。
请查看下面的链接:
https://www.npmjs.com/package/@angular/cli#updating-angular-cli
更新
感谢宝贵的build议。
-
首先,你需要从系统中卸载当前的angular色。
npm uninstall -g angular-cli
npm uninstall –save-dev angular-cli
npm uninstall -g @ angular / cli
-
清理caching
npmcaching清理
-
全局安装angular度
npm install -g @ angular / cli @ latest
-
如果你有一个本地项目设置
rm -rf node_modules
npm install –save-dev @ angular / cli @ latest
npm安装
-
这将解决问题。
如果你想安装/升级所有的软件包到最新版本,你正在运行Windows,你可以在powershell.exe
使用它:
foreach($package in @("animations","common","compiler","core","forms","http","platform-browser","platform-browser-dynamic","router")) { npm install @angular/$package@latest -E }
如果你也使用cli
,你可以这样做:
foreach($package in @('animations','common','compiler','core','forms','http','platform-browser','platform-browser-dynamic','router', 'cli','compiler-cli')){ iex "npm install @angular/$package@latest -E $(If($('cli','compiler-cli').Contains($package)){'-D'})"; }
这会将软件包确切地保存(-E),并将cli软件包保存在devDependencies
(-D)
使用npm-upgrade的替代方法:
-
npm i -g npm-upgrade
转到您的项目文件夹
-
npm-upgrade check
它会问你是否要升级包,select是
这很简单