升级到Angular 9后缺少材料依存关系

时间:2020-06-16 22:35:28

标签: angular typescript npm angular-material

我遵循了升级指南,将Angular从8.2迁移到9.1。我也在使用Angular材料,根据我也更新的指南。我还确保所有其他软件包均为通缉版本。<​​/ p>

每当我尝试运行解决方案时,我都会得到:

ERROR in The target entry-point "@angular/material/core" has missing dependencies:
 - @angular/core
 - @angular/platform-browser
 - rxjs
 - rxjs/operators
 - @angular/platform-browser/animations
 - @angular/common
 - @angular/forms

npm已过时,没有检查过的软件包。

所有Angular软件包都已通过ng update更新到了最新版本,只是为了确保我使用npm cache clear --force清除了缓存。

@ angular / core的版本位于“ @ angular / core”:"^9.1.11",材料位于"^9.2.4"

我假设材料依赖于内核的不同版本,但不明白为什么默认情况下会使用ng-cli安装它,以及如果安装的版本不合适,应该安装哪个版本

4 个答案:

答案 0 :(得分:2)

请遵循以下步骤:-

  1. 删除node_modules文件夹。
  2. 删除package-lock.json文件。
  3. 运行 npm缓存清理--force
  4. 运行 npm install-保存@ angular / material @ angular / cdk

然后尝试运行您的项目。

答案 1 :(得分:0)

尝试使用纱线(版本1,而不是版本2)https://classic.yarnpkg.com/en/docs/install/#windows-stable

Yarn与npm具有很好的兼容性,但是使用了完全不同的模块缓存文件夹,并进行了其他node_modules检查以确保您的模块处于正确的状态。

纱线可能无法完全解决您的问题,但是由于项目之间的高度兼容性,项目中的某些人使用纱线,有些人使用npm并不罕见。

答案 2 :(得分:0)

也许这可以提供一些见识:

我遇到了同样的问题,但就我而言,该错误发生在我构建的程序包中,即 package X

我能够通过以下方式解决 X包中的问题:

  1. 删除package-lock.json
  2. 运行命令 npm cache clean --force
  3. 重建软件包

然后在我想使用 package X 的项目中:

  1. npm安装软件包X

问题解决了

答案 3 :(得分:0)

在我的项目中更新节点模块时,我遇到了类似的错误,只有错误出在我的项目使用的内部库中。我最终发现 Angular 依赖于旧版本的 rxjs 而不是库(我刚刚更新)。将 rxjs 降级以匹配 Angular 引入的内容为我解决了这个问题。