提问者:小点点

为什么NPM 7.17不安装我的对等依赖项


我有一个main项目,它依赖于本地文件存储中的包package1<代码>程序包1同级取决于express:

{
  "name": "package1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "peerDependencies": {
    "express": "^4.17.1"
  }
}

在我做的主要项目的文件夹中

npm install ../packages/package1

具有npm@6.x它将package1安装为主项目的node_模块中的链接,正如预期的那样。这也给了我一个警告,对等依赖项丢失了——正如预期的那样。

现在我用npm@7.17为了同样的任务。使用--传统对等deps选项或不使用。它将package1作为链接安装在主项目的node_模块中。但是它没有在主包中安装对等依赖项,也没有给我一个警告,即缺少对等依赖项。

我在主项目中安装了警告(至少在打开-legacy-peer_deps的情况下)或Express。顺便说一句,它也不会安装在包1的node_modules。

有人知道吗?我会非常感激的。


共1个答案

匿名用户

同样的事情也发生在我身上,基于这一评论https://stackoverflow.com/a/57915074/473967看起来peerDependencies适用于主机包,但不会安装在“plugin”包上,因此我们需要在依赖项(或devDependencies)和peerDependencies上添加两次,以让主机知道。