【问题标题】:Missing material dependencies after upgrade to Angular 9升级到 Angular 9 后缺少材质依赖项
【发布时间】:2020-10-06 15:49:30
【问题描述】:

我按照升级指南将 Angular 从 8.2 迁移到 9.1。我也在使用 Angular 材料,根据我也更新的指南。我还确保所有其他包都是通缉版本。

每当我尝试运行我得到的解决方案时:

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 outdated 检查没有过时的包。

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

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

我假设材料依赖于不同版本的核心,但不明白为什么它会默认使用 ng-cli 安装它,以及如果不是正确的版本要安装什么版本

【问题讨论】:

  • 我会删除 package-lock.json 文件和 node_modules 然后 npm install
  • 谢谢,不幸的是,这似乎不起作用,我得到了同样的错误
  • 你试过npm install --save @angular/material @angular/cdk然后清除缓存吗?
  • 你能显示npm list --depth=0的输出吗?
  • 当您说“运行解决方案”时,您使用的是 Visual Studio 之类的 IDE 吗?你有某种非标准的方式来运行项目吗?还是您只是从命令行运行 npm start?

标签: angular typescript npm angular-material


【解决方案1】:

按照以下步骤:-

  1. 删除 node_modules 文件夹。
  2. 删除 package-lock.json 文件。
  3. 运行 npm cache clean --force
  4. 运行 npm install --save @angular/material @angular/cdk

然后尝试运行您的项目。

【讨论】:

  • 这已经完成并在问题中提到
  • @qubits 在上面又添加了一步。
  • @qubits 你是如何升级@angular/material 的,为什么核心版本与material 不匹配?
  • 我们通过直接升级到 Angular 10 解决了这个问题,似乎我们的一些依赖项存在版本冲突,我们无法确定到底是哪个。但是,这对大多数人都有效,因此我将其标记为解决方案。
  • 升级到 Angular 10 后仍然面临同样的问题
【解决方案2】:

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

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

Yarn 可能无法完全解决您的问题,但是由于它们之间的高度兼容性,项目中的一些人使用 yarn 和一些人使用 npm 的情况并不少见。

【讨论】:

    【解决方案3】:

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

    我遇到了同样的问题,但在我的情况下,错误发生在我构建的包中,即 package X

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

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

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

    1. npm install Package X

    问题解决了

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2020-05-29
        • 2017-01-13
        • 2021-05-22
        • 1970-01-01
        • 2018-12-12
        • 1970-01-01
        • 2017-09-17
        • 2018-11-03
        • 1970-01-01
        相关资源
        最近更新 更多