Npm对等相关性错误

我使用npm install命令重复获得了npm peer dependency错误。 这是我的package.json上,我有未满足的反应和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": "xxx", "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" } } 

那么,首先,这些不是错误,而是警告。 他们不会真的阻止你的代码运行,只要你的依赖关系有问题,他们就会提醒你。

有效地, peerDependencies是一个软件包指定的方式,“为了使用我,你还应该安装x版本的软件包”。 就你而言,你有两个问题:

  • react-datepicker这个版本期望你使用React 14,但是你有React 15.如果你更新react-datepicker到最新版本,那么它将与v15兼容 – 也就是说,如果我没有记错的话,React的两个版本,所以如果出于某种原因使用特定版本的dateselect器, 应该可以安全地忽略这个警告。 不过你的里程可能会有所不同。
  • babel-loader依赖于Webpack,但是你没有安装它的任何版本。 这在你看来确实是一个错误。 运行npm install webpack --save-dev ,这应该会消失。

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

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

  • react-datepicker :你应该升级到最新版本(0.27.0),它将react@^15.0.0声明为对等依赖。
  • babel-loader : 安装说明解释说,使用npm @ 3你需要在你的package.json (使用npm i webpack --save-dev )中显式声明对等的依赖关系(比如webpack )。

desktop-react警告可以被忽略。