无法升级到 Angular4

Can't upgrade to Angular4

是的,我知道已经有成千上万个类似的问题 - 不,none 的答案对我有用。很久以前,我在升级 Angular 时遇到了问题,因此决定忽略新更新。

起初,我使用"standard"升级命令: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

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

基本上:依赖项似乎相互依赖,我无法安装它们中的任何一个。我的 package.json 已正确更新,所有包版本均按应有的方式显示,但我无法 运行 我的项目,因为未安装包。

我尚未尝试过的唯一解决方案是完全重新安装 Angular - 如果可能,我想避免这种情况。

所以,考虑到关于 package.json 的任何事情都不起作用(删除、删除版本,...)并且我无法安装显示为未满足的依赖项,我究竟应该怎么做才能正确升级 Angular?

我已经 运行 遇到类似的问题,似乎是循环包依赖,所以我能感受到你的痛苦。我建议尝试一下 yarn https://yarnpkg.com/en/,它对我帮助很大。

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