我是nodejs的新手,我刚刚全球安装了bower模块。从那时起,npm list命令提供了我在网上搜索但未找到任何帮助的以下输出:
**npm ERR! invalid: chalk@0.5.1 /usr/local/lib/node_modules/bower/node_modules/chalk
npm ERR! invalid: ansi-regex@0.2.1 /usr/local/lib/node_modules/bower/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex
npm ERR! invalid: configstore@0.3.1 /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore
npm ERR! invalid: object-assign@0.3.1 /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/object-assign
npm ERR! invalid: registry-url@0.1.1 /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url
npm ERR! invalid: strip-ansi@0.2.2 /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/string-length/node_modules/strip-ansi
npm ERR! not ok code 0**
输出的其余部分是正常的,并列出已安装的模块。谁能解释一下发生了什么?
答案 0 :(得分:43)
我遇到了这个错误,在"依赖关系中安装了相同的软件包"和" devDependencies"有不同的版本。
答案 1 :(得分:12)
这意味着某些东西取决于,例如"async":"0.9.3"
但是当他们require("async")
时,npm认为他们会得到一些其他版本。并检查package.json
文件中列出的依赖项及其版本是否可用。
如果一切正常,那么你可以用
来解决这个问题npm update
接着是
npm install.
答案 2 :(得分:6)
我在安装较新版本的模块后遇到此错误,而不更新我的package.json。所以package.json需要旧版本,而npm list
在我的node_modules
目录中检测到更新的版本。
运行以下命令让我摆脱了消息。
npm install {required_module}@{new_version} --save
答案 3 :(得分:0)
我得到了一个相关但却不同的错误(但最终在这里,所以我在这里回答)在运行npm update
之后我得到了。 (npm install
,fwiw没有这样的问题)
myapp@1.0.0 /home/malcolm/myapp
├── beeminder@1.4.3 invalid
beeminder
包是我维护的包,因此在我的主应用中,我将其semver设置为latest
。这似乎以前工作正常,但我想npm
的新版本并不喜欢它。
我认为使用^1.4.3
是合理的,因为如果我引入新的更改,那么我可能正在更改自己的代码。但是,如果出于某种奇怪的原因,您需要最新的软件包(包括重大修改!),那么您可以使用>=
作为前缀而不是^
。
答案 4 :(得分:0)
当安装的软件包版本与 package.json
将安装的版本不对应时,就会出现这种情况。
假设您在 "axios": "0.19.2",
中指定了 package.json
,但之后您将使用 npm install axios@0.18.1
安装特定版本。
npm list | grep axios
现在会屈服
├─┬ axios@0.18.1 invalid
按照 this answer 中的说明进行修复。