Błąd kompilacji bcrypt-node.js

Próbuję zainstalować bycrpt przez npm install używając Windows 7 Ultimate x64. To jest mój dziennik instalacji:

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

Mam już zainstalowany Python Path w następujący sposób:

%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
Ale nadal dostaję te błędy. Co mogę spróbować dalej? Zainstalować Visual Studio całkowicie?
Author: Tim Daubenschütz, 2013-01-29

6 answers

Porzuć moduł bcrypt i użyj natywnej biblioteki JavaScript. bcrypt-nodejs nie wymaga kompilacji i zapewnia prawie taką samą funkcjonalność jak skompilowany bcrypt.

 56
Author: Noah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-22 15:07:18

Jest to poprawny sposób instalacji bcrypt przez npm na Windows 7/8 x64

Pre:

Post:

Otwórz "Wiersz poleceń programisty dla VS2012" jako Administrator i zainstaluj test:

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

P. S. moje obecne środowisko Windows: win8 x64, node 0.10.x. Wszystko działa ładnie.

Aktualizacja (2016) : Uwaga dla systemu Windows 10 x64

Visual Studio Express Desktop Edition rozwiązuje problem node-gyp. Wystarczy go zainstalować i będzie działać dla node-gyp.

Linki:

 37
Author: diproart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-22 16:44:53

Jak to rozwiązałem.

Moje środowisko: Windows 8.1 x64, Node v0.12.2, npm v2. 7. 5

Zainstaluj wszystkie komponenty:

  1. zainstaluj najnowszą wersję 2.x Python, Pobierz Python (pobrałem 2.7.9)
  2. zainstaluj Visual Studio 2012/13 Express (lub inne)
  3. W tym celu zainstaluj pakiet Windows SDK (dla Windows 7 / 8)
  4. zainstaluj Win64 OpenSSL v1.0.1 g, pobierz go z tutaj (załadowałem "Win64 OpenSSL v1. 0. 2 a" najnowsze)

Po zainstalowaniu wszystkich komponentów [ważne]:

Otwórz" wiersz poleceń programisty dla VS2012 " jako Administrator

[dla VS 2012] Przejdź do

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

[dla VS 2013] Przejdź do

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

Wykonaj polecenie " VsDevCmd.bat "

Następnie możesz wykonać te cmd:

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

I u mnie zadziałało (mam problem z uruchomieniem, bo od początku nie wykonuję komendy " VsDevCmd.bat").

Uwaga:

  1. Jeśli nadal nie wykonuje spróbuj wykonać polecenie w prostym wierszu polecenia otwartym jako Administrator
  2. lub jeśli bcrypt instaluje się pomyślnie i wykonuje npm install w Twoim projekcie to się nie powiedzie. Sprawdź wersję bcrypt w pakiecie.json. W moim przypadku było "bcrypt": "0.7.x "zależność została określona, a ja mam nowszą wersję bcryot, więc po zmianie jej na "bcrypt": "0.8.x", wszystko zainstalowane pomyślnie.
 1
Author: Drasius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-04 05:17:37

dla każdego, kto nadal ma problemy z instalacją bcrypt w 2017 roku.

Został wydany moduł npm do obsługi natywnych problemów z zależnościami Window przez Felixa Rieseberga i innych współpracowników. . NET Framework 4.5.1 jest jedynym wymogiem dla Windows 7 / Vista.

Z uprawnieniami administratora, Uruchom:

npm install --g --production windows-build-tools
npm install bcrypt
 1
Author: Ricky Boyce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-11 13:37:54

Patrząc na błąd widzę

C:\users\timd.node-gyp \ 0.8.18 \ deps \ uv \ include \ ares.h(49): błąd krytyczny C1083: nie można otworzyć pliku dołączonego: 'winsock2.h': No such file or directory

Musisz to naprawić, zanim będziesz mógł posunąć się dalej. Prawdopodobnie albo to rozgryzłeś, albo ruszyłeś dalej, odkąd minął miesiąc.

Spójrz na winsock2.h, brak takiego pliku lub katalogu

 0
Author: Nick Campbell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:06

Obecnie wystarczy użyć biblioteki bcryptjs, jest ona bardziej aktualna i kompiluje się dobrze na Windows 10.

 0
Author: Anand Sowmithiran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-11 11:17:14