0

我尝试从 NPM 7 的对等依赖检查中排除react-virtualized包。我知道我可以单独安装该包

npm install react-virtualized --legacy-peer-deps

...但我的目标是使用 npm install 安装所有软件包,并且不应检查对等依赖项。那可能吗?

我会接受任何向我展示如何操作 package.json 的答案,以便新的npm install运行而不会出现对等依赖错误。我有以下 package.json:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-redux": "^7.2.4",
    "react-router": "^5.2.0",
    "react-router-dom": "^5.2.0",
    "react-beautiful-dnd": "^13.1.0",
    "react-device-detect": "^1.11.14",
    "react-markdown": "^7.0.0",
    "react-resize-detector": "^6.7.1",
    "react-virtualized": "^9.22.3"
  }  
}
4

1 回答 1

1

package.json据我所知,在你自己内部没有办法做到这一点。更改需要在package.jsonforreact-virtualized包中发生。也许这些替代方案之一对您有用:

  1. 在 .npmrc 文件中为您的项目设置legacy-peer-deps。如果人们通过安装您的项目,npm但如果您的项目是从 git 存储库克隆或以其他方式下载的,然后人们npm install从那里运行,这将不起作用,包括.npmrc项目中的 a 应该可以工作。

  2. 要求使用npm@6which 将对对等依赖项检查更宽松。您可以npm在. _package.json

  3. react-virtualized从 GitHub安装。master 分支(在撰写本文时,不幸的是只有 master 分支)具有 d36509817ac44 提交,该提交已添加react@17react-dom@17作为可接受的对等依赖项。由于此代码尚未发布,您可能会得到一个不稳定的模块版本。去做这个:npm install git+https://github.com/bvaughn/react-virtualized.git

  4. 使用react@16andreact-dom@16而不是@17每个。

于 2021-08-19T13:59:33.427 回答