首页 > 解决方案 > 为什么 NPM 7.17 不安装我的对等依赖项

问题描述

我有一个main项目,它依赖于package1本地文件存储中的一个包。package1peer 依赖于 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_modules 中。它还给了我一个警告,即缺少对等依赖项 - 正如预期的那样。

现在我使用 npm@7.17 来完成同样的任务。带--legacy-peer-deps选项或不带选项。它将 package1 作为链接安装在主项目的 node_modules 中。但它不会在主包中安装对等依赖项,也不会给我一个警告,即缺少对等依赖项。

我预计会出现警告(至少在-legacy-peer_deps打开的情况下)或express安装在主项目中。顺便说一句,它也没有安装在 package1 的 node_modules 中。

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

标签: node.jsnpmnpm-install

解决方案


同样的事情发生在我身上,根据这个评论https://stackoverflow.com/a/57915074/473967看起来像是peerDependencies主机包,但不会安装在“插件”包上,所以我们需要添加它两次,在依赖项(或 devDependencies)和 peerDependencies 上让主机知道。


推荐阅读