GYP ERR! build error. stack Error: 'make' failed with exit code 2

拈花ヽ惹草 提交于 2019-12-01 15:04:22

It worked after deleting package-lock.json and re run npm install

Figured out the issue. Some of the npm packages were not up to date. I modified the package.json to install all the latest versions of all packages and the error was fixed.

Delete the ~/.node-gyp folder and then the ~/.npmrc file.

Reboot your server and rerun npm install in your project folder

Edit:

Warning: removing ~/.npmrc will delete your other configurations

For other people that stumble into this exact problem:

In my case, the server node version was set to an older version in my package.json file than what my local environment was running. So check what you are running locally with:

node --version
-> 8.11.3

Then look at your server setting in your package.json:

{
  "name": "myapp",
  "version": "0.0.0",
  "private": true,
  "engines": {
    "node": "7.10.2" // <-- This is too old, set it to the node version you are running locally (8.11.3)
  },

I hope this helps someone.

This has been old yet consistent issue well documented at: https://github.com/nodejs/node-gyp/issues/809

For me the error mentioned the version numbers like:

gyp ERR! System Darwin 17.7.0
gyp ERR! node -v v12.1.0
gyp ERR! node-gyp -v v3.8.0

After attempting all the possible combinations of solutions (modify ~/.npmrc, remove ~/.node-gyp, clear the npm cache, delete node_modules and even restart the system), what worked with me was downgrading the node.

I believe the versions mentioned in the log for node and node-gyp are incompatible. So I reverted to an older node version which worked like a charm.

npm install -g node@11.10.0

There should be a clear documentation describing breaking changes and compatibility issues between the two.

If you are using NMV, you can also change to version your package support, like:

nvm install 7.10.2
nvm use 7.10.2

I got the same problem when installed the gazebo gzweb. I found out that apt install nodejs install the "node" in the direction of "/usr/bin/". You can verify by which node. But node -v is still referring to "/usr/local/bin/node" which is a wrong version I failed to uninstall. Thus as my solution:

rm -rf /usr/local/bin/node
cp -i /usr/bin/node /usr/local/bin/
cp -i /usr/bin/nodejs /usr/local/bin/

Steps:

sudo apt-get install npm npm install -g n n stable npm install npm@6.9.0 -g ln -s /usr/local/bin/npm /usr/bin/npm

I think delete this directory and clean the cache of npm is better:

rm -rf ~/.node-gyp/
rm -r node_modules/.bin/;
rm -r build/
npm cache clean

and you can test

npm install -g node-gyp

and

npm install -g node-pre-gyp

finally:

npm install <your module>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!