无法升级到Angular4

是的,我知道已经有成千上万个类似的问题了 – 不,没有一个答案对我有用。 我刚刚在升级Angular时遇到了一些问题,只是决定忽略新的更新。

起初,我使用了“标准”升级命令: npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save然而,导致出现以下错误(+最后有很多警告):

 +-- @angular/animations@4.1.3 +-- @angular/common@4.1.3 +-- UNMET PEER DEPENDENCY @angular/compiler@4.1.3 +-- @angular/compiler-cli@4.1.3 invalid | +-- @angular/tsc-wrapped@4.1.3 | | `-- tsickle@0.21.6 | `-- reflect-metadata@0.1.10 +-- UNMET PEER DEPENDENCY @angular/core@4.1.3 +-- @angular/forms@4.1.3 +-- @angular/http@4.1.3 +-- @angular/platform-browser@4.1.3 +-- @angular/platform-browser-dynamic@4.1.3 +-- @angular/platform-server@4.1.3 | +-- parse5@3.0.2 | `-- xhr2@0.1.4 +-- @angular/router@4.1.3 +-- angular-cli@1.0.0-beta.24 | +-- @angular-cli/ast-tools@1.0.11 | | `-- typescript@2.0.10 | +-- UNMET PEER DEPENDENCY @angular/compiler@2.4.10 | +-- UNMET PEER DEPENDENCY @angular/compiler-cli@2.4.10 | | `-- @angular/tsc-wrapped@0.5.2 | +-- UNMET PEER DEPENDENCY @angular/core@2.4.10 | `-- typescript@2.0.10 +-- typescript@2.3.2 invalid `-- UNMET PEER DEPENDENCY zone.js@0.7.4 

好吧,没有什么大不了的,一个快速的谷歌search告诉我(再次)简单地安装每个未满足的对等依赖关系。 问题:无论哪个未遵守的同伴依赖关系我尝试安装,我得到未满足的同伴依赖性错误。 例子:第一个命令告诉我没有满足zone.js依赖关系。 所以我很快运行了npm install zone.js@0.7.4 ,并得到了一些未满足的依赖关系的错误消息,包括像@ angular / core这样的软件包,当我尝试安装它们时,告诉我未满足的依赖关系是zone.js.

基本上:依赖关系似乎互相依赖,我不能安装任何一个。 我的package.json得到了正确更新,所有包版本都应该显示,但我无法运行我的项目,因为没有安装包。

我还没有尝试过的唯一解决scheme是完全重新安装Angular – 如果可能的话,我希望避免这种情况。

所以,考虑到有关package.json的任何内容不起作用(删除,删除版本,…),我不能安装显示为未满足的依赖关系,我应该做些什么来正确地升级Angular?

我遇到类似的问题,看起来像循环包依赖,所以我感到你的痛苦。 我build议给纱线尝试https://yarnpkg.com/en/ ,它帮了我很多。

  1. 安装纱线https://yarnpkg.com/en/docs/install
  2. 删除项目中的node_modules文件夹
  3. 在你的package.json文件夹中运行'yarn'。 这将安装您的软件包的所有旧版本,包括Angular 2。
  4. 然后运行“纱线升级”。 这应该安装所有包(包括Angular 4)的最新版本,并具有正确的依赖关系。