当试图configuration或重buildnode-gyp时,出现错误:mac osx mavericks

我正在尝试运行node-gyp configure ,但遇到以下错误:

 gyp: binding.gyp not found (cwd: /usr/local/bin) gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:337:16) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:789:12) gyp ERR! System Darwin 13.0.0 gyp ERR! command "node" "/usr/local/bin/node-gyp" "configure" gyp ERR! cwd /usr/local/bin gyp ERR! node -v v0.10.20 gyp ERR! node-gyp -v v0.12.2 gyp ERR! not ok 

我认为我在错误的目录中,但我不确定。 我应该运行哪个目录?

您正在尝试在当前工作目录(CWD) /usr/local/bin运行node-gyp rebuild ,因此node-gyp无法在/usr/local/bin/binding.gypfind绑定。

浏览你的terminal到包含nodejs模块的目录,然后运行node-gyp rebuild gyp node-gyp rebuild

 cd ~/Projects/your-nodejs-native-module/ node-gyp rebuld 

顺便说一句,我不知道从哪个节点的版本,但在现代版本,你可以运行npm install在这个目录和npm将运行node-gyp rebuild为你。

 cd ~/Projects/your-nodejs-native-module/ npm install 

如果有疑问,首先重新安装npm install -g node-gyp

运行node-gyp rebuild是最佳实践。 从项目的根目录运行它。 另外你的binding.gyp应该在根目录下,指向依赖关系(别的地方)。

一般来说,不需要手动运行node-gyp configure

从外观上看(不是100%肯定) /usr/local/bin不存在于你的电脑里。 但是从堆栈跟踪很难说。

我有更新版本的节点有这个问题。 我最好的解决方法是使用像节点版本pipe理器(nvm)的东西来恢复到旧版本的节点,然后再次运行npm install

首先全局安装node-gyp:

 sudo npm -g install node-gyp 

请看这个答案