Instalación npm que requiere node-gyp falla en Windows

Tengo un proyecto NPM que usa bufferutils y utf-8-validate , y ambos requieren node-gyp para instalarlos. Cuando hago la npm install , me sale el siguiente error:

 > bufferutil@1.2.1 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:bufferutil@1.2.1 bufferutil@1.2.1 install: `node-gyp rebuild` npm WARN install:bufferutil@1.2.1 Exit status 1 

Anteriormente fallaba porque Python 2.7 no estaba instalado, ahora es esto. Me está causando dolores de cabeza. ¿Qué debo hacer al respecto?

La respuesta a continuación representa una instalación manual, pero hay una forma mucho más simple: la instalación automática.

Abra Powershell como administrador y ejecute npm install -g windows-build-tools .

¡La instalación lleva tiempo pero funcionó como un encanto para mí!

Encontré esta shiny solución en GitHub:

  1. Tu SO DEBE ser Windows
  2. Comprueba que python está en tu ruta escribiendo python --version en la consola. Si no entonces
  3. Descargue python 2.7 (recomiendo chocolatey ( choco install python2 -y )) y agregue python.exe a su variable PATH.
  4. ¿No estás en Windows 7? Saltar 5 y 6.
  5. Comprueba que tienes .NET 4.5.1+ instalado . Si no entonces
  6. Descargue e instale .NET 4.5.1 (.NET 4.5.2 también funcionará bien)
  7. Descargar Microsoft Visual C ++ Build Tools 2015 Technical Preview
  8. Utilice la instalación personalizada. Instale el SDK de Windows 8.1 si aún no lo ha hecho. Al parecer, no importa en qué sistema operativo estés. Solo necesitas el SDK de Windows 8.1.
  9. Establezca la variable de configuración npm msvs_version en 2015: npm config -g set msvs_version 2015
  10. Haga npm i en cualquier proyecto con node-gyp como una dependencia sin ver mensajes de error extraños

¡Mis pesadillas se han ido!