2014-09-06 29 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