2012-08-30 55 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

相关问题