Reputation: 3391
I have a NPM project that uses bufferutils
and utf-8-validate
, both requiring node-gyp to install them. When I do npm install
, I get following error:
> [email protected] install C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil
> node-gyp rebuild
C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil {git}{hg}
{lamb} if not defined npm_config_node_gyp (node "C:\Users\Marek\AppData\Roaming\npm\node_modules\npm\bin\node-g
yp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
bufferutil.cc
C:\Users\Marek\.node-gyp\5.1.1\include\node\v8.h(18): fatal error C1083: Cannot open include file: 'stddef.h':
No such file or directory [C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil\build\bufferutil.vcx
proj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\Marek\AppData\Roaming\npm\node_modules\npm\node_modules\nod
e-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Marek\\AppData\\Roaming\\npm\\node_modules\\
npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil
gyp ERR! node -v v5.1.1
gyp ERR! node-gyp -v v3.2.1
gyp ERR! not ok
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild`
npm WARN install:[email protected] Exit status 1
Previously it failed because of Python 2.7 not installed, now it is this. It's causing me headaches. What should I do about this?
Upvotes: 58
Views: 86021
Reputation: 10877
Started Working For Me
Nothing work for me (installed msvs_version 2017,2015)
Noticed
node-gyp error comes from python path and msvsc path
npm config list
Output (set correct installed path and msvs)
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.12.0 node/v12.9.0 win32 ia32"
; userconfig C:\Users\balaji\.npmrc
init-author-name = "Balaji"
init-license = "MIT"
msvs_version = "2017"
node_gyp = "C:\\Users\\balaji\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js"
python = "C:\\Users\\balaji\\.windows-build-tools\\python27/python.exe"
; globalconfig C:\Users\balaji\AppData\Roaming\npm\etc\npmrc
; builtin config undefined
prefix = "C:\\Users\\balaji\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files (x86)\nodejs\node.exe
; cwd = G:\all clients project\2020\anware
; HOME = C:\Users\balaji
; "npm config ls -l" to show all defaults.
To Set globaly(eg)
npm config -g set msvs_version 2015
To Set localy (eg)
npm config set msvs_version 2015
Path correction
npm config set python /path/to/executable/python
for those who Not installed yet(it install msvsc and python)
npm install -g windows-build-tools
after install check above givn tips such as path and version everything
happy coding....
detail info updated https://stackoverflow.com/a/68630586/11624647
Upvotes: 2
Reputation: 46
Using WSL works for me (windows 10 users only)
those who dont know what WSL is simply Linux command shell in windows
just follow this guide to install WSL https://wiki.ubuntu.com/WSL and install nodejs and npm my using commands
sudo apt-get install nodejs npm -y
Upvotes: -3
Reputation: 397
Found a solution here: https://spin.atomicobject.com/2019/03/27/node-gyp-windows/
I had to install Windows Build Tools 2015 and then set Node to use it.
Here are the commands I've used:
npm install --global --production windows-build-tools --vs2015
npm config set msvs_version 2015 –global
Upvotes: 0
Reputation: 121
I couldn't find my solution anywhere else, so thought I'd share.
Running node v10.16.3 on Windows 10
Install windows-build-tools -
npm install --global --production windows-build-tools
Set the python path explicitly in C:\Users[your username].npmrc - In my case, this is like so:
python=c:\users\akeel\.windows-build-tools\python27\python
Upvotes: 4
Reputation: 1
I was having this issue when updating from an older version of node to node v12. There was a particular issue with bcrypt library. I just uninstalled v12 and installed v10 and everything worked.
Upvotes: 0
Reputation: 2279
The answer below stands for a manual installation, but there is a much simpler way : the automatic install.
Open Powershell as admin and run npm install -g windows-build-tools
.
The install takes time but it worked like a charm for me !
Upvotes: 102
Reputation: 3391
I found this brilliant solution on GitHub:
python --version
in the console. If not thenchoco install python2 -y
)) and add python.exe
to your PATH variable.npm config -g set msvs_version 2015
npm i
in what-ever project with node-gyp as a dependency without seeing weird error messagesMy nightmares are gone!
Upvotes: 24