Angular 8 Peer Dependencies混乱

时间:2019-09-10 16:15:51

标签: angular npm

我正在使用Angular 8,并且不断收到有关angular / compiler-cli对等依赖项的npm警告。

  

npm WARN @ angular / compiler-cli @ 8.1.2需要一个对等体@ angular / compiler @ 8.1.2,但   没有安装。您必须自己安装对等依赖项。

但是,如果我执行npm install @angular/compiler@8.1.2,npm会继续抱怨同一条消息。

  在依赖项下将

@ angular / compiler @ ^ 8.0.0安装为package-json   已安装'@ angular / compiler-cli @ ^ 8.1.2和@ angular / compiler @ ^ 8.1.2   在devDependencies下。

这对我来说毫无意义。

有人知道如何产生将提供更多信息的错误消息吗?

或者至少如何解决这种npm不一致问题?

2 个答案:

答案 0 :(得分:1)

首先运行以下代码以在您的项目中自动更新

ng update

Ng update是Angular CLI中可用的命令,用于更新您的应用程序及其依赖项。

如果这不起作用,请尝试使用以下命令

ng update @angular/cli @angular/core  
@angular/compiler@^8.0.0 is installed package-json under dependencies and '@angular/compiler-cli@^8.1.2 and
@angular/compiler@^8.1.2 are installed under devDependencies.

有两种依赖性。

“依赖项”:生产中应用程序所需的软件包。

“ devDependencies”:仅本地开发和测试所需的软件包。

您将在项目的package.json中看到这两个。该消息表明在这两个依赖项中安装了@ angular / compilar的两个不同版本

答案 1 :(得分:0)

dependencies之前或之后,在package.json中添加以下内容:

"peerDependencies": {
   "@angular/compiler": "^8.1.2"
 }

在运行之后:
npm install

对等依赖性如何解决
他们告诉npm

  

我需要这个软件包,但是我需要项目中包含的版本,而不是模块专用的版本。

当npm看到您的软件包正在安装到不具有该依赖项或版本不兼容的项目中时,它将在安装过程中向用户发出警告。

何时应使用对等依赖项?

  • 在构建供其他项目使用的库时,以及
  • 该库正在使用其他库,并且
  • 您希望/也需要用户与其他库一起使用