如何正确地将angular度2(npm)升级到最新版本?

最近,我在https://angular.io/docs/ts/latest/tutorial/上开始了Angular 2教程。

并停止与Angular 2testing版8.现在我恢复了教程和最新的testing版是testing版14。

如果我只是做npm更新一些模块(预先加载的教程)更新,但不是Angular2(我可以看到,与npm ls )。

如果我做npm更新angular度2npm更新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 -Dnpm update -S是为了克服这个bug,直到它被修复。

我用于迁移的另一个不错的软件包Angular2的testing版本到Angular2 2.0.0 finalnpm-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/compileryarn list @angular/compiler
  • 要检查在npm运行中可用的最新稳定的@angular版本:
    npm show @angular/compiler version

npm官方页面提出了一个结构化方法来更新全局和本地场景的angular度版本。

请查看下面的链接:

https://www.npmjs.com/package/@angular/cli#updating-angular-cli

更新

感谢宝贵的build议。

  1. 首先,你需要从系统中卸载当前的angular色。

    npm uninstall -g angular-cli

    npm uninstall –save-dev angular-cli

    npm uninstall -g @ angular / cli

    1. 清理caching

      npmcaching清理

    2. 全局安装angular度

      npm install -g @ angular / cli @ latest

    3. 如果你有一个本地项目设置

    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的替代方法:

  1. npm i -g npm-upgrade

转到您的项目文件夹

  1. npm-upgrade check

它会问你是否要升级包,select是

这很简单