“npm install”给出错误信息“无效”,它是什么?

问题描述:

enter image description here“npm install”给出错误信息“无效”,它是什么?

请检查图片。

我想这与package.json有关,但我不太确定。


回复评论为我安装material-ui更多信息

开始。

的详细的消息现在在这里:

I:\反应-样板> NPM安装材料的UI

[email protected] I:\反应-样板

+ - [email protected]

| + - [email protected]

| + - [email protected]

| + - UNMET PEER DEPENDENCY [email protected]^15.4.2

| + - [email protected]

| + - [email protected]

| + - [email protected]

| | + - UNMET PEER DEPENDENCY [email protected]^15.4.2

| | ` - [email protected]

| + - [email protected]

| | ` - [email protected]

| ` - [email protected]

+ - 未满足PEER DEPENDENCY [email protected]^2.0.1

` - 未满足PEER DEPENDENCY [email protected]。 3

然后我试图通过npm install修复他们的UNMET PEER DEPENDENCY。

第一次尝试给出了这样的:

[email protected] I:\反应,样板

+ - [email protected]无效

+ - 反应[email protected]

` - UNMET PEER DEPENDENCY [email protected]。3

` - [email protected]

正如你可以看到这是第一个invalid我满足。

所以我只是想弄清楚为什么这invalid弹出,以及如何解决它。


回复评论获取更多信息

这里是的package.json,相依部分

“依赖”:{ “巴别塔,填充工具”:“6.20。 0" , “白垩”: “1.1.3”, “压缩”: “1.6.2”, “交叉ENV”: “3.1.3”, “表达”: “4.14.0”, “FON tfaceobserver“:”2.0.7“, ”immutable“:”3.8.1“, ”intl“:”1.2.5“, ”invariant“:”2.2.2“, ”ip“:”1.1。 4“, ”lodash“:”4.17.2“, ”minimist“:”1.2.0“, ”react“:”15.4.1“, ”react-dom“:”15.4.1“, “react-helmet”:“3.2.2”, “react-intl”:“2.1.5”, “react-redux”:“4.4.6”, “react-router”:“3.0.0” , “react-router-redux”:“4.0.6”, “react-router-scroll”:“0.4.1”, “redux”:“3.6.0”, “redux-immutable”:“ 3.0.8“, ”还原奇迹“:”0.14.0“, “reselect”:“2.5.4”, “sanitize.css”:“4.1.0”, “style-components”:“1.1.2”, “warning”:“3.0.0”, “ WHATWG取 “: ”2.0.1“},

和devDependencies部

”devDependencies“:{ ”巴别-CLI“: ”6.18.0“, ” babel-核心“:”6.21.0“, ”babel-eslint“:”7.1.1“, ”babel-loader“:”6.2.10“, ”babel-plugin-dynamic-import-node“:”1.0 .0“, “babel-plugin-react-intl”:“2.2.0”, “babel-plugin-react-transform”:“2.0.2”, “babel-plugin-transform-es2015-modules-commonjs”:“ 6.18.0“, ”babel-plugin-transform-react-constant-elements“:”6.9.1“, ”babel-plugin-transform-react-inline-elements“:”6.8.0“, ”babel -plugin-transform-react-remove-prop-types“:”0.2.11“, ”babel-preset-latest“:”6.16.0“, ”babel-preset-react“:”6.16.0“, “babel-preset-react-hmre”:“1.1.1”, “babel-preset-stage-0”:“6.16.0”, “cheerio”:“0.22.0”, “循环依赖-plugin“:”2.0.0“, ”coveralls“:”2.11.15“, ”css-loader“:”0.26.1 “, ”酶“:”2.6.0“, ”eslint“:”3.11.1“, ”eslint-config-airbnb“:”13.0.0“, ”eslint-config-airbnb-base“: “10.0.1”, “eslint-import-resolver-webpack”:“0.8。0“, ”eslint-plugin-import“:”2.2.0“, ”eslint-plugin-jsx-a11y“:”2.2.3“, ”eslint-plugin-react“:”6.7.1“, “eslint-plugin-redux-saga”:“0.1.5”, “eventsource-polyfill”:“0.9.6”, “exports-loader”:“0.6.3”, “file-loader”: “0.9.0”, “html-loader”:“0.4.4”, “html-webpack-plugin”:“2.24.1”, “image-webpack-loader”:“2.0.0”, “imports-loader”:“0.6.5”, “jest-cli”:“18.0.0”, “lint-staged”:“3.2.1”, “ngrok”:“2.2.4”, “node-plop”:“0.5.4”, “null-loader”:“0.1.1”, “offline-plugin”:“4.5.2”, “plop”:“1.7.3”, “pre-commit”:“1.1.3”, “react-addons-test-utils”:“15.4 .1“, ”rimraf“:”2.5.4“, ”shelljs“:”0.7.5“, ”sinon“:”2.0.0-pre“, ”style-loader“:”0.13.1 “, ”url-loader“:”0.5.7“, ”webpack“:”2.2.0-rc.3“, ”webpack-dev-middleware“:”1.9.0“, ”webpack-hot -middleware“:”2.15.0“}

+0

你能提供更多的信息吗?还有什么打印到上面和下面的输出? –

+0

@ E_net4嘿,我已经添加了更多信息! –

+0

还请包括您的项目的package.json,或至少是注册的依赖项。 –

这里的一个无效的依赖关系表明安装了不适当的版本的依赖包。在这种情况下,您的项目请求[email protected],但安装了2.2.1版本。请注意版本范围中没有脱字号(^)或代字号(〜),这意味着2.2.1不是有效匹配项。

与其他依赖关系(如material-ui)需要的版本15.4.1固定版本的React发生了另一个冲突,应升级到版本范围^15.4.2

为了设置一个依赖的新版本(升级/降级的话),不要忘了相应的保存标志(--save/-S--save-dev/-D)。

npm install -S [email protected]^15.4.2 

不幸的是,react-tap-event-plugin取决于版本2.2.0-rc3的WebPack,所以你不应该的WebPack升级。相反,您可以拨打npm update --dev以确保所有注册的依赖项都安装了正确的版本。如果一切都失败了,一个天真但有效的技巧是删除node_modules文件夹并从头开始安装所有软件包。

+0

好听起来不错。只是想确认所有的细节:'无效'消息提示版本冲突,但冲突的依赖关系仍然被成功安装,是吗?就像'devDepdencies'需要'2.2.0-rc3',我安装了'2.2.1',所以它告诉我'无效',但它仍然允许我这样做,对吧? –

+0

呵呵,你是怎么发现'react-tap-event-plugin'依赖于'2.2.0-rc3'的? –

+0

糟糕我想我在我的文章中提供了错误的package.json内容,我用正确的github内容纠正了它,但'webpack'的'devDependencies'仍然是'2.2.0-rc3',所以我认为你的答案仍然有效。 –

我见过这个错误发生时,做一个npm install Path\Filename.tgz其中文件名是不同的后续npm install调用比原来的安装。

具体而言,在Windows操作系统上,路径\文件名大小写无关紧要。

例如,我安装了一个具有大写字母开始字符的文件夹名称,然后在随后的调用中使用了小写字母名称。这导致软件包未被安装并生成包名称旁边的红色invalid警告。

检查package.json并使用确切路径和文件名,看看是否为您解决它。