Npm 对等依赖错误

Npm peer dependency error

我在使用 npm install 命令时反复收到 npm peer dependency 错误。这是我的 package.json,我对 React 和 webpack

有未满足的对等依赖
    npm WARN react-datepicker@0.25.0 requires a peer of react@^0.14.0 but none was installed.
    npm WARN babel-loader@6.2.4 requires a peer of webpack@1 || ^2.1.0-beta but none was installed.
    npm WARN desktop-react@1.0.0 No repository field.
    npm WARN desktop-react@1.0.0 license should be a valid SPDX license expression

{
  "name": "xxxxxxxxx",
  "version": "x.x.x",
  "description": "",
  "main": "index.js",
  "author": "",
  "license": "xxxxxxx",
  "dependencies": {
    "bootstrap": "^3.3.6",
    "fs": "0.0.2",
    "history": "^1.17.0",
    "immutable": "^3.8.1",
    "isomorphic-fetch": "^2.2.1",
    "lodash": "^4.11.1",
    "moment": "^2.13.0",
    "react": "^15.0.1",
    "react-autosuggest": "^3.7.3",
    "react-bootstrap": "^0.29.1",
    "react-datepicker": "^0.25.0",
    "react-dom": "^15.0.1",
    "react-redux": "^4.4.5",
    "react-router": "^2.3.0",
    "react-select": "^1.0.0-beta12",
    "redux": "^3.5.2"
  },
  "devDependencies": {
    "babel-core": "^6.7.7",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.6.0",
    "babel-preset-react": "^6.5.0",
    "bootstrap": "^3.3.6",
    "css-loader": "^0.23.1",
    "redux-devtools": "^3.2.0",
    "style-loader": "^0.13.1"
  }
}

嗯,首先,这些不是错误,它们是警告。他们实际上不会从 运行ning 停止您的代码,他们只是在您的依赖项出现问题时提醒您。

实际上,peerDependencies 是包指定 "to use me, you should also have x version of y package installed" 的一种方式。在你的情况下,你有两个问题:

  • 该版本的 react-datepicker 希望您使用 React 14,但您有 React 15。如果您将 react-datepicker 更新到最新版本,该版本将与 v15 兼容 - 也就是说,如果我没记错的话,这两个版本的 React 之间几乎没有重大变化,所以如果你因为某种原因坚持使用那个特定版本的日期选择器,它 应该 是安全的忽略该警告。不过,您的里程可能会有所不同。
  • babel-loader 依赖于 Webpack,但您没有安装它的任何版本。这对你来说似乎是个错误; 运行 npm install webpack --save-dev 这应该会消失。

希望在这种情况下,您将来能够理解如何解释这些警告!

有警告,不是错误,但仍然值得修复。

  • react-datepicker: 你应该升级到最新版本 (0.27.0),它声明 react@^15.0.0 为对等依赖。
  • babel-loaderinstallation instructions 解释说,对于 npm@3,您需要在 package.json 中明确声明对等依赖项(如 webpack)(使用 npm i webpack --save-dev).

可以忽略 desktop-react 警告。