使用npm列表时,“无效”是什么意思?

我是nodejs的新手,我刚刚在全局安装了bower模块。 从那以后,npm list命令给出了我在网上search到的下列输出,但是找不到任何帮助:

**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** 

其余的输出是正常的,并列出已安装的模块。 任何人都可以解释发生了什么事?

我得到这个错误具有相同的软件包安装在“依赖”和“devDependencies”与不同版本。

这意味着什么取决于,例如, "async":"0.9.3" ,但当他们require("async") ,npm认为他们会得到一些其他版本。 还要检查package.json文件中列出的依赖关系及其版本是否可用。

如果一切正常,那么你可以解决这个问题

 npm update 

其次是

 npm install. 

安装更新版本的模块后,我得到这个错误,没有更新我的package.json。 所以package.json需要更老的版本,而npm list正在我的node_modules目录中检测到更新的版本。

运行下面的命令让我摆脱了这个消息。

npm install {required_module}@{new_version} --save

我得到一个相关但不同的错误(但在这里结束,所以我在这里回答)在运行npm update我会得到。 (没有这样的问题与npm install ,fwiw)

 myapp@1.0.0 /home/malcolm/myapp ├── beeminder@1.4.3 invalid 

beeminder包是我维护的,所以在我的主应用程序,我已经把它的semver设置为latest 。 这似乎以前工作正常,但我想一个新版本的npm不喜欢它。

我认为仅仅使用^1.4.3是合理的,因为如果我引入新的变化,那么我可能会改变自己的代码。 但是,如果出于某种奇怪的原因,您需要最新的软件包(包括重大更改!),那么您可以使用>=作为前缀而不是^