Mac OS X上的node.js npm“错误:没有这样的模块”

我已经从pkg安装程序安装了node.js v0.8.8,并从源代码进行了编译。 然而,当我尝试运行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) 

你很可能以某种方式使用一个旧的NPM版本。 请参阅: npm问题

我有完全相同的问题从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已经散列了可执行文件的名字。 散列保存每次执行公共程序时,都会重复searchPATH中的所有目录。 命令行中的hash -r处理了这个问题。