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-loader
:installation instructions 解释说,对于 npm@3,您需要在 package.json
中明确声明对等依赖项(如 webpack
)(使用 npm i webpack --save-dev
).
可以忽略 desktop-react
警告。
我在使用 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-loader
:installation instructions 解释说,对于 npm@3,您需要在package.json
中明确声明对等依赖项(如webpack
)(使用npm i webpack --save-dev
).
可以忽略 desktop-react
警告。