when trying to configure or rebuild node-gyp, gett

2019-03-14 08:46发布

问题:

I'm trying to run node-gyp configure, but am getting the following errors:

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 

I think that I'm in the wrong directory, but I'm not sure. Which directory should I be in to run this?

回答1:

You are trying to run node-gyp rebuild in current working directory (CWD) /usr/local/bin so the node-gyp can not find binding at /usr/local/bin/binding.gyp.

Navigate your terminal to directory which contain nodejs module and only then run node-gyp rebuild.

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

BTW I am not sure from which node version exactly but in modern versions you can just run npm install in this directory and npm will run node-gyp rebuild for you.

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


回答2:

Install node-gyp globally first:

sudo npm -g install node-gyp

Please see this answer



回答3:

if in doubt first re-install npm install -g node-gyp.

It's best practice to run node-gyp rebuild. Run it from your project's root. Also your binding.gyp should be in the root, pointing to dependencies (somewhere else).

In general there shouldn't be any need to run node-gyp configure manually.



回答4:

By the look of the things (not 100% sure) /usr/local/bin does not exist in your computer. But it is hard to say from the stack-trace.



回答5:

I have had this problem with newer versions of node. My best work around has been using something like node version manager (nvm) to revert back to an older version of node and then running npm install again.