2012-08-30 72 views
5

我已經從pkg安裝程序安裝了node.js v0.8.8並且從源代碼編譯。然而,當我嘗試運行npm時,出現以下錯誤。任何幫助,將不勝感激。Mac OS X上的node.js npm「錯誤:沒有這樣的模塊」

> $ npm --help 
> 
> /usr/lib/node_modules/npm/lib/utils/config-defs.js:5 , stdio = 
> process.binding("stdio") 
>     ^Error: No such module 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/config-defs.js:5:21) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
>  at Module.load (module.js:356:32) 
>  at Function.Module._load (module.js:312:12) 
>  at Module.require (module.js:362:17) 
>  at require (module.js:378:17) 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/ini.js:43:18) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
+1

呵呵呵,「不吸模塊」。不要糾正這一點。 :) –

回答

3

你很可能以某種方式使用舊的NPM版本。 見:npm issue

+3

謝謝,我不得不克隆git repo(git://github.com/isaacs/npm.git),然後必須手動刪除/ usr/lib/node_modules/npm和/ usr/bin/npm *)然後運行「sudo make install」) –

+0

呵呵...我想知道爲什麼node從src編譯它時沒有覆蓋npm二進制文件... – xen

9

我有從Node.JS 0.4升級到0.8完全相同的問題。對我有效的是:

OSX Node.JS軟件包安裝程序錯誤地不會刪除/ usr/bin中舊的0.4 npm安裝,然後與/ usr/local/bin中新的0.8安裝程序衝突。它只是覆蓋已有的東西。我核爆舊刪除它,但要肯定的是,我決定一個乾淨的安裝會比較好:

curl https://npmjs.org/install.sh | sudo clean=yes sh

還有最後一個問題:在安裝之後,即使which npm正確返回/usr/local/bin/npm, bash一直試圖從/ usr/bin執行。這是因爲在OSX上,bash散列了可執行文件的名稱。每次執行公共程序時,散列都會保存PATH中所有目錄的重複搜索。在命令行中輸入hash -r來解決這個問題。

+1

對於我來說沒有運氣,從節點0.4升級到0.10。 – SimplGy

相關問題