无法升级到Angular4

时间:2017-05-18 17:50:07

标签: json node.js angular packages

是的,我知道已经有成千上万的类似问题了 - 不,没有一个答案对我有用。很久以前我已经遇到了升级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

好吧,没什么大不了的,快速谷歌搜索告诉我(再次)只是简单地安装每个未满足的对等依赖。问题:无论哪些的对等依赖关系都没有遇到我尝试安装,我得到了未满足的对等依赖关系错误。示例:第一个命令告诉我没有遇到zone.js依赖项。所以我快速运行npm install zone.js@0.7.4,并获得包含一些未满足的依赖项的错误消息,例如包含@ angular / core等软件包,当我尝试安装它们时,告诉我未满足的依赖项是区域的.js。

基本上:依赖关系似乎彼此依赖,而且我无法安装任何依赖关系。我的package.json已正确更新,所有软件包版本都应该显示,但是我无法运行我的项目,因为软件包没有安装。

我还没有尝试的唯一解决方案是完全重新安装Angular - 如果可能的话,我想避免使用它。

所以,考虑到有关package.json的任何内容都不起作用(删除,删除版本,......)而我无法安装显示为未满足的依赖项,我应该怎样做才能升级Angular正常?

1 个答案:

答案 0 :(得分:2)

我遇到类似圆形包依赖的问题,所以我感到很痛苦。我建议尝试一下纱线https://yarnpkg.com/en/,它帮助了我很多。

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