web-dev-qa-db-fra.com

Erreur lors de la compilation de bcrypt - node.js

J'essaie d'installer bycrpt via npm install sous Windows 7 Ultimate x64 . Voici mon journal d'installation:

D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\bcrypt>node "C:\Program File
s\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node
-gyp.js" rebuild
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/cssom
npm http 304 https://registry.npmjs.org/hooks/0.2.1
npm http 304 https://registry.npmjs.org/mongodb/1.2.8
npm http 304 https://registry.npmjs.org/ms/0.1.0
npm http 304 https://registry.npmjs.org/sliced/0.0.3
npm http 304 https://registry.npmjs.org/muri/0.1.0
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/crc/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/bytes/0.1.0
npm http GET https://registry.npmjs.org/formidable/1.0.11
npm http GET https://registry.npmjs.org/qs/0.5.1
npm http GET https://registry.npmjs.org/bson/0.1.5
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(29
7,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.
  TargetFrameworkVersion or PlatformToolset may be set to an invalid version nu
mber. [D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\bcrypt\build\bcrypt_
lib.vcxproj]
  blowfish.cc
  bcrypt.cc
  bcrypt_node.cc
..\src\bcrypt.cc(232): warning C4267: '=' : conversion from 'size_t' to 'unsign
ed char', possible loss of data [D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_mo
dules\bcrypt\build\bcrypt_lib.vcxproj]
c:\users\timd\.node-gyp\0.8.18\deps\uv\include\ares.h(49): fatal error C1083: C
annot open include file: 'winsock2.h': No such file or directory [D:\Dropbox\Pr
ojekte\RZ\Finance-Man-GUI\node_modules\bcrypt\build\bcrypt_lib.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.e
xe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\
npm\node_modules\node-gyp\lib\build.js:255:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:99:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:678:10)
gyp ERR! System Windows_NT 6.1.7600
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modu
les\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\bcrypt
gyp ERR! node -v v0.8.18
gyp ERR! node-gyp -v v0.8.2
gyp ERR! not ok
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `cmd "/c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! System Windows_NT 6.1.7600
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd D:\Dropbox\Projekte\RZ\Finance-Man-GUI
npm ERR! node -v v0.8.18
npm ERR! npm -v 1.2.2
npm ERR! code ELIFECYCLE
npm http 304 https://registry.npmjs.org/crc/0.2.0
npm http 304 https://registry.npmjs.org/qs/0.5.1
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/bson/0.1.5
npm http 304 https://registry.npmjs.org/formidable/1.0.11
npm http 304 https://registry.npmjs.org/bytes/0.1.0

> [email protected] install D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\mongoos
e\node_modules\mongodb\node_modules\bson
> node install.js || (exit 0)

================================================================================

=                                                                              =

=  Attempting to build bson c++ extension                                      =

=   Windows: no build will be attempted as binaries are prepackaged            =

=   Unix: on failure the package will still install without the C++ extension  =

=                                                                              =

================================================================================

npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     D:\Dropbox\Projekte\RZ\Finance-Man-GUI\npm-debug.log
npm ERR! not ok code 0

J'ai déjà installé Python <v2.7 et .NET Framework SDK 2.0 . J'ai également téléchargé un package appelé win7sdkx64.exe qui correspond à ce que je pense du sdk pour Visual Studio. J'ai aimé toutes les dépendances de ma Path comme suit:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;E:\Program Files\Java\jdk1.6.0_38\bin;C:\Program Files (x86)\Heroku\bin;C:\Program Files (x86)\Ruby-1.9.2\bin;C:\Program Files (x86)\git\bin;C:\Program Files (x86)\git\cmd;E:\Program Files (x86)\Heroku\bin;C:\mongodb-win32-x86_64-2.2.2\bin;E:\xampp\mysql\bin;E:\xampp\Apache\bin;E:\Python27;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcpackages;C:\Program Files\Microsoft Windows Performance Toolkit\;E:\Program Files (x86)\openssl-0.9.8k_X64\bin

mais je continue d’obtenir ces erreurs . Installer Visual Studio complètement?

24
Tim Dau

Abandonnez le module bcrypt et utilisez plutôt une bibliothèque JavaScript native. bcrypt-nodejs ne nécessite aucune compilation et fournit presque les mêmes fonctionnalités que bcrypt compilé.

55
Noah

C’est la bonne façon d’installer bcrypt sur NPM sur Windows 7/8 x64.

Pré:

Poster:

Ouvrez "Invite de commandes du développeur pour VS2012" en tant qu'administrateur et testez l'installation: 

npm install node-gyp -g
npm install bcrypt -g

p.s. Mon environnement Windows actuel: Win8 x64, noeud 0.10.x. Tout fonctionne bien.

UPDATE (2016): Remarque pour Windows 10 x64

Visual Studio Express Desktop Edition résout le problème node-gyp. Il suffit de l’installer et cela fonctionnera pour node-gyp.

Liens:

36
diproart

Pour tous ceux qui rencontrent encore des erreurs lors de l'installation de bcrypt en 2017.

Un module npm a été publié par Felix Rieseberg et d’autres contributeurs pour traiter les problèmes de dépendance natifs de Windows. .NET Framework 4.5.1 est la seule exigence pour Windows 7/Vista.

Avec les privilèges d'administrateur, exécutez:

npm install --g --production windows-build-tools
npm install bcrypt
1
Ricky Boyce

Comment j'ai résolu ça. 

Mon environnement: Windows 8.1 x64, Node v0.12.2, npm v2.7.5

Installer tous les composants:

  1. Installez la dernière version 2.x de Python, téléchargez Python (j'ai téléchargé la version 2.7.9)
  2. Installez Visual Studio 2012/13 Express (ou autre)
  3. Installer Windows SDK (pour Windows 7/8)
  4. Installez Win64 OpenSSL v1.0.1g, téléchargez-le depuis ici (j'ai chargé la dernière version de "Win64 OpenSSL v1.0.2a")

Une fois tous les composants installés [Important]:

Ouvrez "Invite de commandes du développeur pour VS2012" en tant qu'administrateur.

[pour VS 2012] Aller à 

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools

[pour VS 2013] Aller à 

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools

Exécutez la commande "VsDevCmd.bat"

Ensuite, vous pouvez exécuter ces cmd:

npm install node-gyp -g
npm install bcrypt -g

Et pour moi cela a fonctionné (j'ai du mal à lancer, car depuis le début je n'exécute pas la commande "VsDevCmd.bat").

Remarque: 

  1. S'il ne s'exécute toujours pas, essayez d'exécuter la commande en une invite de commande ouverte en tant qu'administrateur.
  2. Ou si bcrypt installe correctement et exécute l’installation de npm dans votre projet, il échoue. Vérifiez la version de bcrypt dans package.json. Dans mon cas, il y avait "bcrypt": la dépendance "0.7.x" a été spécifiée, et j’ai une version plus récente de bcryot. Ainsi, après le changer en "bcrypt": "0.8.x", tout a été installé avec succès.
1
Drasius

En regardant l'erreur je vois 

c:\users\timd.node-gyp\0.8.18\deps\uv\include\ares.h (49): erreur fatale C1083: impossible d'ouvrir le fichier d'inclusion: 'winsock2.h': aucun fichier ni répertoire de ce type

Vous devrez résoudre ce problème avant de pouvoir aller plus loin. Vraisemblablement, vous avez compris ou passé à autre chose depuis un mois.

Jetez un oeil sur winsock2.h, aucun fichier ni répertoire de ce type

0
Nick Campbell