不兼容的对等依赖(使用 ng update @angular/core) - 澄清消息

tay*_*fan 4 npm angular

我正在11.0.5通过运行以下命令来更新我的 Angular 项目:

ng update @angular/core@11.0.5

出现的错误信息如下:

Package "codelyzer" has an incompatible peer dependency to "@angular/common" (requires ">=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0" (extended), would install "11.0.5")

问题:

  1. 如果Angular 更新为11.0.5,这是否意味着现有的 codelyzer 将无法运行,因为它仅与此版本括号内的 Angular 兼容: >=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0?
  2. 如何解释“将安装 11.0.5”?是不是意味着运行命令ng update @angular/core@11.0.5,这会将 Angular 更新到 11.0.5,其后果是它将与现有版本的 Codelyzer 不兼容?
  3. 在大多数情况下,人们建议使用该--force标志运行更新。首先更新 Codelyzer 的正确方法是吗?然后只将 Angular 更新为11.0.5?

谢谢。

Owe*_*vin 5

Angular 已弃用Codelyzer

\n
\n

我们\xe2\x80\x99在版本 11 中弃用了 TSLint 和 Codelyzer。这意味着在未来版本中,linting Angular 项目的默认实现将不可用。该ng lint命令的功能类似于ng deploy,建议开发人员可以添加到他们的项目中的推荐实现。

\n
\n

所以基本上 Angular 推荐使用eslint. 如果您已升级到 Angular 11,那么我建议您也eslint按照以下方式迁移到使用官方 Angular 文档中的步骤迁移到使用

\n
\n

如果 Angular 更新到 11.0.5,这是否意味着现有的 codelyzer 将无法运行,因为它仅与此版本括号内的 Angular 兼容:>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0?

\n
\n

如果你安装了--forceflagcodelyzer就会运行。但主要问题是,在 Angular 的未来版本中,由于此功能已被弃用,因此将被删除,因此最好按照建议进行升级

\n
\n

如何解释“将安装 11.0.5”?是不是意味着运行命令ng update @angular/core@11.0.5,这会将 Angular 更新到 11.0.5,其后果是它将与现有版本的 Codelyzer 不兼容?

\n
\n

是的,这会将多个版本的依赖项更新为Angular 11.0.5. 我确实使用该标志将我的项目更新到 Angular 11 --force,但在方式上没有遇到任何差异codelyzer

\n
\n

在大多数情况下,人们建议使用 --force 标志运行更新。首先更新 Codelyzer 的正确方法是吗?然后只更新Angular到11.0.5?

\n
\n

如果由于不兼容的依赖关系而需要更新,如果没有该--force标志,则该命令将失败。您可以使用该--force标志,并在成功安装更新后解决引发的警告,例如从迁移tslinteslint

\n