5

我已经从 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)
4

2 回答 2

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

最后一个问题:安装后,即使 awhich npm正确返回/usr/local/bin/npm,bash 仍然试图从 /usr/bin 执行。这是因为在 OSX 上,bash 已经对可执行文件名进行了哈希处理。每次执行常用程序时,散列都会保存对 PATH 中所有目录的重复搜索。命令行中的Ahash -r解决了这个问题。

于 2012-10-16T20:23:51.980 回答
3

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

于 2012-08-30T14:22:59.550 回答