La instalación de NPM falla con node-gyp

9 minutos de lectura

Avatar de usuario de Oliver Watkins
Oliver Watkins

Estamos teniendo problemas para ejecutar “instalación npm” en nuestro proyecto. Un determinado archivo no se puede encontrar:

fatal error C1083: Cannot open include file: 'windows.h'

Parece provenir del nodo-gyp módulo:

c:\Archivos de programa\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo ad_hook.c(13):

error fatal C1083: no se puede abrir el archivo de inclusión: ‘windows.h’: no ​​existe tal archivo o directorio
[D:\ngs-frontend-next\node_modules\browser-sync\node_module
s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil
d\binding.sln]

Este nodo-gyp parece ser una fuente interminable de dolor para nosotros. Al principio se quejó de que necesitaba Python, así que lo instalamos. Luego se quejó de que necesitaba VCBuild, que instalamos (usando .NET 2.0 SDK), ahora tenemos este error. Es casi como si los errores fueran cada vez más oscuros, y se siente como si estuviéramos yendo por un camino equivocado.

Lo extraño es que otras personas de nuestro equipo no tienen problemas para ejecutar npm-install.

El error completo se ve así:

c:\Archivos de programa\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo ad_hook.c(13):

error fatal C1083: no se puede abrir el archivo de inclusión: ‘windows.h’: no ​​existe tal archivo o directorio
[D:\ngs-frontend-next\node_modules\browser-sync\node_module
s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil
d\binding.sln]

gitano ¡ERROR! error de compilación gyp ERR! Error de pila:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe falló con el código de salida: 1 pila en ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node _modules\node-gyp\lib\build.js:270:23) gyp ERR! pila en emitTwo (events.js:87:13) gyp ERR! pila en ChildProcess.emit (events.js:172:7) gyp ERR! pila en Process.ChildProcess._handle.onexit (internal/child_proces s.js:200:12) gyp ERR! Sistema Windows_NT 6.1.7601 gyp ERR! comando “C:\Program Files\nodejs\node.exe” “C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js” “rebuild” gyp ERR! cwd D:\ngs-frontend-next\node_modules\browser-sync\node_modules\socket. io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil gyp ERR! nodo -v v4.2.2 gyp ¡ERROR! nodo-gyp -v v3.0.3 gyp ¡ERROR! no está bien npm WARN opcional dep falló, continúa utf-8-validate@1.2.1

gifsicle@3.0.3 postinstalación D:\ngs-frontend-next\node_modules\gulp-imagemin\nod e_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle node lib/install.js

Afuera paquete.json Se ve como esto :

{
  "name": "Fast-nunjucks",
  "version": "0.0.1",
  "description": "A simple boilerplate using nunjucks as a template engine",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/willianjusten/Fast-nunjucks.git"
  },
  "keywords": [
    "nunjucks",
    "node",
    "gulp",
    "stylus"
  ],
  "author": "Willian Justen de Vasconcellos",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/willianjusten/Fast-nunjucks/issues"
  },
  "homepage": "https://github.com/willianjusten/Fast-nunjucks",
  "devDependencies": {
    "autoprefixer-stylus": "^0.7.1",
    "browser-sync": "^2.8.2",
    "gulp": "^3.9.0",
    "gulp-cache": "^0.3.0",
    "gulp-concat": "^2.6.0",
    "gulp-if": "^1.2.5",
    "gulp-imagemin": "^2.3.0",
    "gulp-minify-html": "^1.0.4",
    "gulp-nunjucks-html": "^1.2.2",
    "gulp-order": "^1.1.1",
    "gulp-plumber": "^1.0.1",
    "gulp-stylus": "^2.0.6",
    "gulp-uglify": "^1.2.0",
    "gulp-util": "^3.0.6",
    "jeet": "^6.1.2",
    "kouto-swiss": "^0.11.13",
    "minimist": "^1.1.3",
    "rupture": "^0.6.1"
  },
  "dependencies": {
    "gulp-install": "^0.6.0"
  }
}

  • “Lo extraño es que otras personas de nuestro equipo no tienen problemas para ejecutar npm-install”. – asegúrese de que todos estén en la misma versión de node.

    – xdumaine

    24 de noviembre de 2015 a las 14:48

  • ¿Resolviste este problema? Tengo algo como este. ¿Puede consultar este problema: stackoverflow.com/questions/34335043/… Puede ser que tenga algunos consejos útiles para mí.

    – Dmitro Medvid

    26 de diciembre de 2015 a las 9:30

  • Intenté varios días para este problema de compilación, en mi PC con Visual Studio 2010/2013/2015 instalado, sin éxito. Y luego, finalmente, terminé construyéndolo dentro de una VM pura de Windows con éxito. No me gusta, pero funcionó.

    – Vale

    27 de diciembre de 2016 a las 10:26

  • Oh hombre. No actualizo mis aplicaciones con frecuencia, pero cada vez que lo hago, node-sass falla en la instalación de npm. Se está poniendo muy viejo. ¿No hay una alternativa?

    –Ken Hadden

    15 de julio de 2021 a las 0:17

  • Aparte, cuando una compilación falla de esta manera (con un problema de compilación nativo impulsado por node-gyp), ¿hay alguna manera de conservar los resultados/artefactos compilados parcialmente para investigar más a fondo? En mi caso, recibo el error, pero luego las fuentes/binarios compilados se limpian con el resto del proceso npm (por lo que no tengo forma de solucionar el problema con más detalle)

    – Janaka Bandara

    19 de enero de 2022 a las 14:26

Los mensajes de error me han causado confusión y no me han ayudado a resolver los errores por completo.

Él LÉAME.md por nodo-gyp proyecto hace un mejor trabajo al enumerar las instrucciones de instalación para Unix, Max OS X y ventanas.

En ventanas puede ir con la Opción 1 o la Opción 2, pero lo principal es que necesita instalar el Herramientas de compilación de Visual C++.

La siguiente cita es de la ventanas sección de instalación:

  • En Windows:
    • Entorno de compilación de Visual C++:
      • Opción 1: instale las herramientas de compilación de Visual C++ mediante la opción de instalación predeterminada.
      • Opción 2: Instale Visual Studio 2015 (o modifique una instalación existente) y seleccione Herramientas comunes para Visual C++ durante la configuración. Esto también funciona con las ediciones gratuitas Community y Express for Desktop.

      [Windows Vista / 7 only] requiere .NET Framework 4.5.1

    • Instale Python 2.7 (v3.xx no es compatible) y ejecute
      npm config set python python2.7

      (o consulte a continuación para obtener más instrucciones sobre cómo especificar la versión y la ruta de Python adecuadas).

    • Iniciar cmd,
      npm config set msvs_version 2015

Si los pasos anteriores no funcionaron para usted, visite las Directrices de Node.js de Microsoft para Windows para obtener sugerencias adicionales.

Instrucciones comunes para la configuración de Python:

Si tiene varias versiones de Python instaladas, puede identificar qué versión de Python usa node-gyp configurando la variable ‘–python’:

$ node-gyp --python /path/to/python2.7

Si se llama a node-gyp a través de npm y tiene varias versiones de Python instaladas, entonces puede establecer la clave de configuración ‘python’ de npm en el valor apropiado:

$ npm config set python /path/to/executable/python2.7

Configuré con éxito mi sistema siguiendo las instrucciones anteriores.

Información del sistema

λ ver

Microsoft Windows [Version 6.1.7601]

λ node -v
v6.2.0
λ npm -v
3.9.2

Enlaces a herramientas/artículos relevantes:

Herramientas de compilación de Visual C++

estudio visual 2015

.NET Framework 4.5.1

Pitón 2.7

Directrices de Node.js de Microsoft para Windows

  • en Windows, desea hacer npm config set msvs_version=2015 –global

    – mjwrazor

    08/11/2016 a las 21:31

  • > node-gyp --python D:\Python27\python.exe – ‘node-gyp’ no se reconoce como un comando interno o externo, un programa ejecutable o un archivo por lotes.

    – Aleksey Kontsevich

    11/12/2017 a las 19:00

  • npm config set python D:\Python27\python.exe tampoco ayudó: stackoverflow.com/q/47759310/630169

    – Aleksey Kontsevich

    11 de diciembre de 2017 a las 19:01


  • Esta respuesta tiene nada que ver con la pregunta, que preguntaba sobre el npm install causando node-gyp rebuild para ejecutar desde el directorio de trabajo incorrecto!

    – Nurbol Alpysbayev

    12/09/2019 a las 23:30

Probé todas las soluciones anteriores pero ninguna funcionó. Mi problema fue con algunos archivos en el directorio raíz que tuve que eliminar:

package-lock.json y yarn.lock y yarn-error.log

después de eliminar estos archivos, ejecuté:

npm cache clean --force

luego ejecuté el comando:

npm install

y el error se fue

  • ‘npm cache clean –force’ luego ‘npm install’ funcionó para mí. Gracias 🙂

    – ahmed_khan_89

    24 de junio de 2021 a las 22:16

  • Esta es una gran ayuda: el paquete-lock.json desapareció y el caché se limpió, ¡funcionó de maravilla! Muchas gracias.

    – Suciedad

    20 oct 2022 a las 14:08

Intente instalar de nuevo con --force option:

npm install --force

Si esto no funciona, intente actualizar npm globalmente:

npm update -g npm 

y prueba de nuevo con el --force opción.

  • no funcionó Pero creo que tiene algo que ver con los requisitos de node-gyp. En el sitio web dice que necesita Visual Studio instalado.

    –Oliver Watkins

    25 de noviembre de 2015 a las 10:34

  • Intenté este enfoque… Pero no funcionó para mí. Dispara los mismos errores que antes. Consulte este problema: stackoverflow.com/questions/34335043/… Tal vez tenga algunos consejos útiles para mí…

    – Dmitro Medvid

    26 de diciembre de 2015 a las 9:26


Tuve casi el mismo problema en Mac. Recibí muchos mensajes de error de spam, pero finalmente reconocí el problema, era una versión que no coincidía…

Descripción:

La instalación de npm falló al instalar gyp (node-gyp):

npm ERR! gyp ERR! node -v v16.2.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok 
npm ERR! Build failed with error code: 1

Solución:

¡Rebaja npm/node a una versión estable!

Intentar:

Instalar ‘n’: npm i -g n

Rebajar npm: sudo n stable

Repetición npm install y esto funciona!

La última vez que vi un error similar fue porque estaba usando la versión incorrecta de npm y/o node para una de mis dependencias. Intente actualizarlos y vuelva a intentarlo.

Antes de intentarlo de nuevo, elimine su node_modules directorio.

Es posible que deba investigar qué versiones de npm y node sus dependencias necesitan. Puede probar las últimas versiones de todas sus dependencias, nodo y npm.

Verifique qué versiones están usando sus colegas.

¿Qué sistema operativo estás usando? Eso puede tener un impacto ya que la versión de CLANG puede ser diferente.

  • eliminar node_modules del directorio nodejs también?

    –Oliver Watkins

    24 de noviembre de 2015 a las 16:59

  • Solo si vas a reinstalar los paquetes globales también

    – Softinio

    24 de noviembre de 2015 a las 18:19

  • Usando Windows 7. Intenté todo lo que dijiste pero todavía tengo el mismo problema. Parece que necesito Visual Studio o algo así instalado.

    –Oliver Watkins

    25 de noviembre de 2015 a las 10:35

  • ¿Puedes agregar más detalles sobre cómo verificar todas las dependencias? Tengo un problema similar y agregué algunos detalles aquí: stackoverflow.com/questions/34335043/… ¿Puede tener algunos consejos útiles para mí?

    – Dmitro Medvid

    26 de diciembre de 2015 a las 9:22

Si está utilizando “node-sass”, actualícelo a la versión 5.0.0, asegúrese de tener instaladas las herramientas de compilación 2017 y Python 3, y emita estos comandos antes de la instalación de npm

npm config set msvs_version 2017

npm config set python npm config set python C:\Users\username\AppData\Local\Programs\Python\Python39\python.exe

  • eliminar node_modules del directorio nodejs también?

    –Oliver Watkins

    24 de noviembre de 2015 a las 16:59

  • Solo si vas a reinstalar los paquetes globales también

    – Softinio

    24 de noviembre de 2015 a las 18:19

  • Usando Windows 7. Intenté todo lo que dijiste pero todavía tengo el mismo problema. Parece que necesito Visual Studio o algo así instalado.

    –Oliver Watkins

    25 de noviembre de 2015 a las 10:35

  • ¿Puedes agregar más detalles sobre cómo verificar todas las dependencias? Tengo un problema similar y agregué algunos detalles aquí: stackoverflow.com/questions/34335043/… ¿Puede tener algunos consejos útiles para mí?

    – Dmitro Medvid

    26 de diciembre de 2015 a las 9:22

Avatar de usuario de Aloiso Gomes
aloiso gomes

Intente eliminar la carpeta actual de node_modules y ejecute Command como usuario normal, no administrador o root

¿Ha sido útil esta solución?