web-dev-qa-db-fra.com

node-gyp build windows x64 d'erreur

Voici ce que j'ai fait jusqu'à présent sur mon système d'exploitation x64:

  • Installé Python (v2.7 - spécifiquement 2.7.6) et l'a ajouté au chemin du système (C:\Python27)
  • Version MS MS C++ 2010 Express installée (j'avais déjà VS 2012 mais sans le composant C++)
  • Installé la mise à jour du compilateur pour Windows SDK 7.1
  • Node-gyp configure exécuté avec succès (à partir de mon répertoire complémentaire sous nodejs\node_modules où se trouve binding.gyp)

  • ran node-gyp build (en tant qu'administrateur) ** C'est ce qui s'est bloqué, me laissant avec:

cette erreur:

C:\Program Files\nodejs\node_modules\msnodesql>node-gyp build
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | win32 | x64
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=x64' ]
Building the projects in this solution one at a time. To enable parallel build, please add the   "/m" switch.

LINK: erreur fatale LNK1181: impossible d'ouvrir le fichier d'entrée 'kernel32.lib' [C:\Program Files\nodejs\node_modules\msnodesql\build\sqlserver.vcxproj]

gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\RNelson\AppData\Roaming\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Users\\RNelson\\AppData\\Roaming\\npm\\node_modules\\node-      gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\Program Files\nodejs\node_modules\msnodesql
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok

Des idées sur ce qui se passe? Merci d'avance! J'essaie juste d'utiliser mon pilote noeud-sqlserver MS pour Node.js

61
Rachael

npm config set msvs_version 2013 --global a fonctionné pour moi car j'utilise les outils de noeud VS et vous n'avez pas besoin de spécifier msvs_version chaque fois que vous effectuez une installation npm. 

J'ai eu un problème en raison duquel la configuration de npm (c:\Utilisateurs\nom d'utilisateur\.npmrc) avait une entrée msvs_version = 2012 qui était obsolète.

36
devman81

J'avais un problème similaire. J'ai trouvé que cet interrupteur m'a aidé

--msvs_version=2012

donc par exemple

npm install --msvs_version=2012 <package>
47
Kyle

Après avoir passé un certain temps à faire en sorte que cela fonctionne (pour moi, la réponse acceptée ne fonctionnait pas, pour moi, c'était juste une solution à moitié solution), j'ai suivi:

  1. Malheureusement, vous devez avoir Visual Studio (j'ai installé Express Edition 2013 Pour DESKTOP).

  2. Python 2.7.3 installé (vous n'avez pas besoin de définir d'environnement Variables)

  3. Exécutez cmd en tant qu'administrateur et accédez à la racine de votre projet (où se trouve votre fichier Package.json)

  4. Première exécution: npm config set python C:\Python27\python.exe

  5. Alors: npm install -msvs_version=2013

Le truc est dans la commande npm config set python ...path_to_python_exe... qui sera fournie par npm à la dépendance qui a besoin de python, je suppose. Je ne sais pas pourquoi la définition de python comme variable env ne suffit pas.

18
Srle

Si tout ce qui précède n'a pas fonctionné (mon cas - Windows10 64bit)

Supprimer C:\Utilisateurs\nom_utilisateur\.node-gyp

Supprimer % AppData%/npm

Supprimer % AppData%/npm-cache

Et installez à nouveau node-gyp

Suivre les instructions sur node-gyp page

J'ai choisi l'option 1 npm install --global --production windows-build-tools

9
vanduc1102

Pour installer node-gyp sous Windows ou tout autre système d'exploitation 

Vous devrez d’abord télécharger le noeud-gyp en

$ npm install -g node-gyp-install

Puis installez par 

$ npm install -g node-gyp

vous devrez peut-être suivre la procédure ci-dessus en tant que root/administrartor.

6
Phani Kumar

En 2015, lors de la tentative d’installation de Keystone, j’ai eu la même erreur en parcourant tout ce que vous m’avez dit, mais cela ne fonctionnait pas tout seul. À la fin, il me suffisait d'exécuter la commande

"C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\SetEnv.CMD" /Release /x64

pour configurer l'environnement avant d'exécuter la commande. (Ne paniquez pas lorsque le texte de votre fenêtre devient vert, cela fonctionne). Alors oui, je voudrais faire les installations et configurer les variables d’environnement de la même manière partout sur Internet, mais assurez-vous d’exécuter la commande ci-dessus avant d’exécuter toute autre commande. Cela ne vous sera probablement pas utile, mais espérons que cela sera utile à quelqu'un d'autre. Si cela ne fonctionne toujours pas, MSVS version 2010 fonctionnait pour moi, donc installez cette version et utilisez l'indicateur -msvs_version = 2010 lors de l'exécution de la commande npm.

4
Angie

J'ai rencontré ce problème moi-même et voici comment je l'ai résolu avec Visual Studio 2010:

Installer les paquets suivants

Utilisez npm install à partir de l'invite de commande du SDK Windows (vous en avez besoin car elle définit des variables d'environnement supplémentaires).

Source: instructions node-gyp pour VS2010

1
DieterDP

Pour moi (Windows 7 64bit), 

J'ai eu du mal à résoudre ce problème pendant une demi-journée. 

Sur mon chemin :

  1. Au panneau de configuration, j'ai supprimé tous les logiciels Python, Microsoft Visual Studio, Microsoft Redistributable et quelque chose que j'avais installé pour résoudre ce problème. 

  2. Mise à jour de la fenêtre et redémarrez. 

  3. Installé Python27 , et Visual Studio 2013sans paramètre env-val

  4. npm install node-gyp -g

  5. J'ai une erreur même chose, mais après npm config set msvs_version 2013 --global, ça marche. 
1
Juntae

Pour moi, la solution qui fonctionnait avec VS express consistait simplement à installer Visual Studio 2013 Express pour le bureau (qui est le seul qui vous donne une invite de commande de développeur à partir de la version 2013). Ouvrez la commande developer Invite (élevée) et exécutez les commandes d'installation de NPM. Cela ne nécessitait pas d'arguments --msvs_version spéciaux, cela fonctionnait simplement.

1
James

il y a un paquet facile à utiliser windows build tools global node. Vous pouvez essayer ceci.

0
EvilBurrito