2014-09-06 27 views
28

我是nodejs的新手,我刚安装了全局的bower模块。从那时起,NPM list命令给出了我搜索在网络上下面的输出,但找不到任何帮助:使用npm列表时,'invalid'是什么意思?

**npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/chalk 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore 
npm ERR! invalid: [email protected] /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: [email protected] /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: [email protected] /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

查看此答案。我有同样的问题,并修复了这个问题。 http://stackoverflow.com/questions/25238544/npm-err-invalid-strip-ansi0-2-2 – pasine 2014-09-09 22:13:54

回答

11

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

如果一切是正确的,那么你可以解决

npm update 

这个问题之后

npm install. 
+1

你能详细说明你的答案吗?如果'somelib'的'package.json'依赖于''async“:”0.9.3“,肯定npm应该将async 0.9.3安装到somelib/node_modules中,require(”async“)应该加载异步0.9.3。你能告诉我们它会加载一个不同版本的异步的情况吗?不要怀疑你的答案的有用性,我只是不完全明白。 – mikemaccana 2014-12-07 15:27:39

+2

@mikemaccana'somelib'''package.json'将始终将'somelib'的'package.json'中提到的模块版本本地安装到该模块。所以,它不会在模块内造成任何问题。但是在你的项目设置中,如果你已经完成了'npm install async @ 0.6'的操作,并且在你的'package.json'中你指定了依赖作为'async:0.9.x',那么就会出现这种情况。 – Ravi 2014-12-08 04:58:40

+1

啊。我的项目设置通常只运行'npm install'(没有任何选项)并在'package中安装任何东西。因为所有的依赖关系都应该放在'package.json'(或者shrinkwrap文件)中。 – mikemaccana 2014-12-08 09:58:25

0

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

[email protected] /home/malcolm/myapp 
├── [email protected] invalid 

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

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

3

我在安装较新版本的模块之后出现此错误,而未更新我的package.json。所以package.json需要较旧的版本,而npm list正在检测我的node_modules目录中的较新版本。

运行以下命令让我摆脱了消息。

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

35

我正在兼具的“依赖”和“devDependencies”不同版本安装在同一封装此错误。

+0

这应该是被接受的答案 – Andreas 2018-01-10 05:46:03