node.js-使用npm list时“无效”是什么意思?
我是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**
其余输出正常,并列出了已安装的模块。 谁能解释这是怎么回事?
user2229167 asked 2020-08-11T03:23:46Z
4个解决方案
45 votes
我在具有不同版本的“ dependencies”和“ devDependencies”中安装了相同的软件包时遇到此错误。
12 votes
这意味着某些东西取决于例如"async":"0.9.3"
,但是当他们执行require("async")
时,npm认为他们会得到其他版本。 还要检查package.json
文件中列出的依赖项及其版本是否可用。
如果一切正常,则可以使用以下方法解决此问题:
npm update
其次是
npm install.
7 votes
安装更新版本的模块后,没有更新package.json,却出现了此错误。 所以package.json需要较旧的版本,而npm install {required_module}@{new_version} --save
正在我的node_modules
目录中检测到较新的版本。
运行以下命令使我摆脱了该消息。
npm install {required_module}@{new_version} --save
0 votes
运行^1.4.3
后,我得到一个相关但不同的错误(但最终在这里,所以我在这里回答)。 (>=
没有此类问题,前者)
myapp@1.0.0 /home/malcolm/myapp
├── beeminder@1.4.3 invalid
^1.4.3
软件包是我自己维护的软件包,因此在我的主应用程序中,我将其代码设置为>=
。这以前似乎还不错,但是我认为^
的较新版本不喜欢它。
我认为只使用^1.4.3
是合理的,因为如果要引入新的更改,那么无论如何我可能都在更改自己的代码。 但是,如果出于某些奇怪的原因,您需要软件包的最新版本(包括重大更改!),则可以使用>=
作为前缀,而不是^
。