web-dev-qa-db-fra.com

L'installation de NPM échoue avec node-gyp

Nous avons des problèmes pour exécuter "npm install" sur notre projet. Un certain fichier est introuvable:

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

Il semble provenir du module node-gyp

c:\Programme Fichiers\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo ad_hook.c (13): 

erreur fatale C1083: impossible d'ouvrir le fichier à inclure: 'windows.h': pas de succès fichier ou répertoire [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]

Ce nœud-gyp semble être une source de douleur sans fin pour nous. Au début, il s'est plaint qu'il avait besoin de python, nous l'avons donc installé. Ensuite, il s'est plaint du besoin de VCBuild, que nous avons installé (à l'aide du SDK .NET 2.0). Nous avons maintenant cette erreur. C'est presque comme si les erreurs devenaient de plus en plus obscures, et il semblerait que nous empruntions un mauvais chemin.

La chose étrange est que les autres membres de notre équipe n'ont aucun problème à exécuter npm-install.

L'erreur complète ressemble à ceci:

c:\Programme Fichiers\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_lo ad_hook.c (13): 

erreur fatale C1083: impossible d'ouvrir le fichier à inclure: 'windows.h': pas de succès fichier ou répertoire [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]

gyp ERR! erreur de construction gyp ERR! Erreur de pile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe a échoué avec code de sortie: 1 pile dans ChildProcess.onExit (C:\Program Fichiers\nodejs\node_modules\npm\node _modules\node-gyp\lib\build.js: 270: 23) gyp ERR! empiler à emitTwo (events.js: 87: 13) gyp ERR! pile dans ChildProcess.emit (events.js: 172: 7) gyp ERR! empiler à Process.ChildProcess._handle.onexit (internal/child_proces S.js: 200: 12) gyp ERR! Système Windows_NT 6.1.7601 gyp ERR! commander "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodej S\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "reconstruire" 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 SE TROMPER! noeud -v v4.2.2 gyp ERR! node-gyp -v v3.0.3 gyp ERR! pas ok npm WARN facultatif dep a échoué, en continuant [email protected]

[email protected] postinstall D:\ngs-frontend-next\node_modules\gulp-imagemin\nod .__ e_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle noeud lib/install.js

Out pacakge.json ressemble à ceci:

{
  "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"
  }
}
11
Oliver Watkins

Les messages d'erreur ont été source de confusion pour moi et ne m'ont pas aidé à résoudre complètement les erreurs.

Le projet README.md for node-gyp répertorie mieux les instructions d’installation pour Unix, Max OS X et Windows.

Dans les systèmes Windows, vous pouvez choisir Option 1 ou Option 2, mais l’essentiel est d’installer le Visual C++ Build Tools .

La citation suivante provient de la section d'installation de Windows:

  • Sous Windows:
    • Environnement de construction Visual C++:
      • Option 1: Installez les outils de compilation Visual C++ à l'aide de l'option d'installation par défaut.
      • Option 2: Installez Visual Studio 2015 (ou modifiez une installation existante) et sélectionnez Outils communs pour Visual C++ lors de l'installation. Cela fonctionne également avec les éditions gratuites Community et Express for Desktop.

      [Windows Vista/7 uniquement] requiert .NET Framework 4.5.1
    • Installez Python 2.7 (v3.x.x n'est pas pris en charge) et exécutez 
      npm config set python python2.7
      (ou voir ci-dessous pour plus d'instructions sur la spécification de la version et du chemin Python appropriés.)
    • Lancer cmd, 
      npm config set msvs_version 2015

Si les étapes ci-dessus ne vous ont pas aidé, veuillez consulter le Guide Node.js de Microsoft pour Windows pour obtenir des conseils supplémentaires.

Instructions communes pour la configuration Python:

Si vous avez plusieurs versions de Python installées, vous pouvez identifier la version de Python utilisée par node-gyp en définissant la variable '--python':

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

Si node-gyp est appelé via npm et que plusieurs versions de Python sont installées, vous pouvez définir la clé de configuration 'python' de npm sur la valeur appropriée:

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

J'ai réussi à configurer mon système en suivant les instructions ci-dessus.

Information système

λ ver

Microsoft Windows [Version 6.1.7601]

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

Liens vers des outils/articles pertinents:

Outils de génération Visual C++

Visual Studio 2015

.NET Framework 4.5.1

Python 2.7

Guide Node.js de Microsoft pour Windows

10
Sourav Paul

Essayez d’installer à nouveau avec --force option:

npm install --force

Si cela ne fonctionne pas, essayez de mettre à jour npm globalement:

npm update -g npm 

et essayez à nouveau avec l'option --force.

4
David Vega
  1. Installer l'aperçu technique de VC++ Build Tools [Windows 7 uniquement] requiert .NET Framework 4.5.1

  2. Installez Python 2.7 et ajoutez-le à votre PATH, jeu de configuration npm python python2.7

  3. Lancez cmd, npm config set msvs_version 2015 --global (au lieu de npm install [nom du paquet] --msvs_version = 2015 à chaque fois.)

4.SO BEAUCOUP npm installer: tada:

3
sabari

La dernière fois que j'ai vu une erreur similaire, c'était parce que j'utilisais la mauvaise version de npm et/ou node pour l'une de mes dépendances. Essayez de les mettre à niveau et essayez à nouveau. 

Avant de réessayer, supprimez votre répertoire node_modules

Vous devrez peut-être rechercher les versions de npm et node dont vos dépendances ont besoin. Vous pouvez essayer les dernières versions de toutes vos dépendances, noeud et npm.

Vérifiez quelles versions vos collègues utilisent. 

Quel système d'exploitation utilisez-vous? Cela peut avoir un impact car la version de CLANG peut être différente. 

3
Softinio

Publiez ma solution ici si quelqu'un comme moi utilisant Windows 10 a toujours l'erreur après l'installation de nombreux outils de construction associés à Microsoft.

Tout ce dont vous avez besoin sont:

Windows 10 64 bits

python 2.7.x

Visual Studio 2013

J'ai déjà essayé Visual Studio 2015, mais cela n'a pas du tout fonctionné.


  1. Tout d’abord, je désinstalle tous les outils de compilation associés à Microsoft. (Si vous n'avez rien installé pour essayer de résoudre ce problème auparavant, ignorez cette étape.)

  2. Installez Visual Studio 2013.

  3. Config npm comme @Sourav a déclaré:

Config python:

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

Config msvs_version:

npm config set msvs_version 2013

Exécutez un npm install ou la commande npm qui génère cette erreur. Ça marche pour moi! 

BTW, cette solution est de ici .

1
Java Xu

Pour Windows 8 ou 10:

En supposant que le noeud et le npm sont déjà installés.

Mon noeud et la version de npm (Au moment de la rédaction de cette réponse):

noeud: 8.9.4

npm: 5.6.0

  1. Première installation python 2.x

  2. Assurez-vous qu'il est disponible sur le chemin

  3. Install Programme d'installation de Visual Studio

  4. Après l'installation, lancez-le

  5. Une nouvelle interface l'ouvrira où vous pourrez sélectionner différentes options.
  6. Sélectionnez maintenant Build Tools for Visual Studio 2017 parmi les options disponibles et installez-le. Vous n'avez pas besoin d'installer Visual Studio.

 enter image description here Après l'installation, cela devrait fonctionner parfaitement.

0
WitVault

Hé s'il vous plaît essayez d'installer les outils de construction de Windows (paquet global npm)

Cela résoudra votre problème :-) Vous devriez pouvoir utiliser votre commande npm install par la suite.

0
EvilBurrito

pour cela résolu (OS X):

    rm -rf  ~/.node_gyp and
    Sudo npm install -g [email protected]
    cd /usr/local/lib Sudo ln -s ../../lib/libSystem.B.dylib libgcc_s.10.5.dylib 
    brew install gcc
    npm install
0
Orr