"npm install" 给出错误信息 "invalid",这是什么?
"npm install" gives error message "invalid", what is it?
请看图
我猜这与 package.json
有关,但不太确定。
回复评论以获取更多信息
最初我正在安装 material-ui
。
详细留言在这里:
I:\react-boilerplate>npm install material-ui
react-boilerplate@3.4.0 I:\react-boilerplate
+-- material-ui@0.17.1
| +-- keycode@2.1.8
| +-- lodash.throttle@4.1.1
| +-- UNMET PEER DEPENDENCY react@^15.4.2
| +-- react-addons-create-fragment@15.4.2
| +-- react-addons-transition-group@15.4.2
| +-- react-event-listener@0.4.3
| | +-- UNMET PEER DEPENDENCY react@^15.4.2
| | `-- react-addons-shallow-compare@15.4.2
| +-- recompose@0.22.0
| | `-- change-emitter@0.1.3
| `-- simple-assign@0.1.0
+-- UNMET PEER DEPENDENCY react-tap-event-plugin@^2.0.1
`-- UNMET PEER DEPENDENCY webpack@2.2.0-rc.3
然后我试图通过 npm install
他们修复未满足的同伴依赖。
第一次尝试给出了这个:
react-boilerplate@3.4.0 I:\react-boilerplate
+-- react@15.4.2 invalid
+-- react-tap-event-plugin@2.0.1
`-- UNMET PEER DEPENDENCY webpack@2.2.0-rc.3
`-- webpack-sources@0.1.5
如你所见,这是我遇到的第一个 invalid
。
所以我只是想弄清楚为什么 invalid
弹出以及如何修复它。
回复评论以获取更多信息
这里是 package.json,依赖项部分
"dependencies": {
"babel-polyfill": "6.20.0",
"chalk": "1.1.3",
"compression": "1.6.2",
"cross-env": "3.1.3",
"express": "4.14.0",
"fontfaceobserver": "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",
"redux-saga": "0.14.0",
"reselect": "2.5.4",
"sanitize.css": "4.1.0",
"styled-components": "1.1.2",
"warning": "3.0.0",
"whatwg-fetch": "2.0.1" },
和 devDependencies 部分
"devDependencies": {
"babel-cli": "6.18.0",
"babel-core": "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",
"circular-dependency-plugin": "2.0.0",
"coveralls": "2.11.15",
"css-loader": "0.26.1",
"enzyme": "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" }
此处无效的依赖表示安装了不合适版本的依赖包。在这种情况下,您的项目正在请求 webpack@2.2.0-rc3
,但安装的是版本 2.2.1
。请注意,版本范围内没有插入符 (^) 或波浪号 (~),这意味着 2.2.1
不是有效匹配项。
与 React 发生另一个冲突,它固定在版本 15.4.1
,应根据其他依赖项(例如 material-ui
)的要求升级到版本范围 ^15.4.2
。
为了设置一个新版本的依赖(到upgrade/downgrade它),不要忘记各自的保存标志(--save
/-S
或--save-dev
/-D
).
npm install -S react@^15.4.2
不幸的是,react-tap-event-plugin
取决于版本 2.2.0-rc3
webpack,所以你不应该升级 webpack。相反,您可以调用 npm update --dev
来确保所有已注册的依赖项都安装了正确的版本。如果一切都失败了,一个简单但有效的技巧是删除 node_modules 文件夹并从头开始安装所有包。
我看到在执行 npm install Path\Filename.tgz
时发生此错误,其中后续 npm install
调用的文件名与原始安装不同。
具体来说,在 Windows OS 上 path\filename 大小写无关紧要。
例如,我安装了一个以大写开头字符的文件夹名称,然后在后续调用中,我使用了小写名称。这导致软件包无法安装并在软件包名称旁边生成红色 invalid
警告。
检查 package.json
并使用 确切的 路径和文件名,看看是否能为您解决问题。
请看图
我猜这与 package.json
有关,但不太确定。
回复评论以获取更多信息
最初我正在安装 material-ui
。
详细留言在这里:
I:\react-boilerplate>npm install material-ui
react-boilerplate@3.4.0 I:\react-boilerplate
+-- material-ui@0.17.1
| +-- keycode@2.1.8
| +-- lodash.throttle@4.1.1
| +-- UNMET PEER DEPENDENCY react@^15.4.2
| +-- react-addons-create-fragment@15.4.2
| +-- react-addons-transition-group@15.4.2
| +-- react-event-listener@0.4.3
| | +-- UNMET PEER DEPENDENCY react@^15.4.2
| | `-- react-addons-shallow-compare@15.4.2
| +-- recompose@0.22.0
| | `-- change-emitter@0.1.3
| `-- simple-assign@0.1.0
+-- UNMET PEER DEPENDENCY react-tap-event-plugin@^2.0.1
`-- UNMET PEER DEPENDENCY webpack@2.2.0-rc.3
然后我试图通过 npm install
他们修复未满足的同伴依赖。
第一次尝试给出了这个:
react-boilerplate@3.4.0 I:\react-boilerplate
+-- react@15.4.2 invalid
+-- react-tap-event-plugin@2.0.1
`-- UNMET PEER DEPENDENCY webpack@2.2.0-rc.3
`-- webpack-sources@0.1.5
如你所见,这是我遇到的第一个 invalid
。
所以我只是想弄清楚为什么 invalid
弹出以及如何修复它。
回复评论以获取更多信息
这里是 package.json,依赖项部分
"dependencies": { "babel-polyfill": "6.20.0", "chalk": "1.1.3", "compression": "1.6.2", "cross-env": "3.1.3", "express": "4.14.0", "fontfaceobserver": "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", "redux-saga": "0.14.0", "reselect": "2.5.4", "sanitize.css": "4.1.0", "styled-components": "1.1.2", "warning": "3.0.0", "whatwg-fetch": "2.0.1" },
和 devDependencies 部分
"devDependencies": { "babel-cli": "6.18.0", "babel-core": "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", "circular-dependency-plugin": "2.0.0", "coveralls": "2.11.15", "css-loader": "0.26.1", "enzyme": "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" }
此处无效的依赖表示安装了不合适版本的依赖包。在这种情况下,您的项目正在请求 webpack@2.2.0-rc3
,但安装的是版本 2.2.1
。请注意,版本范围内没有插入符 (^) 或波浪号 (~),这意味着 2.2.1
不是有效匹配项。
与 React 发生另一个冲突,它固定在版本 15.4.1
,应根据其他依赖项(例如 material-ui
)的要求升级到版本范围 ^15.4.2
。
为了设置一个新版本的依赖(到upgrade/downgrade它),不要忘记各自的保存标志(--save
/-S
或--save-dev
/-D
).
npm install -S react@^15.4.2
不幸的是,react-tap-event-plugin
取决于版本 2.2.0-rc3
webpack,所以你不应该升级 webpack。相反,您可以调用 npm update --dev
来确保所有已注册的依赖项都安装了正确的版本。如果一切都失败了,一个简单但有效的技巧是删除 node_modules 文件夹并从头开始安装所有包。
我看到在执行 npm install Path\Filename.tgz
时发生此错误,其中后续 npm install
调用的文件名与原始安装不同。
具体来说,在 Windows OS 上 path\filename 大小写无关紧要。
例如,我安装了一个以大写开头字符的文件夹名称,然后在后续调用中,我使用了小写名称。这导致软件包无法安装并在软件包名称旁边生成红色 invalid
警告。
检查 package.json
并使用 确切的 路径和文件名,看看是否能为您解决问题。