Ответ 1
Отключите модуль bcrypt и вместо этого используйте собственную библиотеку JavaScript. bcrypt-nodejs не требует компиляции и обеспечивает почти ту же функциональность, что и скомпилированный bcrypt.
Я пытаюсь установить bycrpt через npm install
с помощью Windows 7 Ultimate x64.
Это мой журнал установки:
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
Я уже установил Python < v2.7 и .NET Framework SDK 2.0.
Я также загрузил пакет под названием win7sdkx64.exe, который был тем, что я считаю sdk для Visual Studio. Мне понравились все зависимости в моем Path
следующим образом:
%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
но я все еще получаю эти ошибки. Что я могу попробовать дальше? Установить Visual Studio полностью?
Отключите модуль bcrypt и вместо этого используйте собственную библиотеку JavaScript. bcrypt-nodejs не требует компиляции и обеспечивает почти ту же функциональность, что и скомпилированный bcrypt.
Это правильный способ установки bcrypt поверх npm на Windows 7/8 x64
Откройте "Командная строка разработчика для VS2012 в качестве администратора и установите тестовую установку:
npm install node-gyp -g
npm install bcrypt -g
p.s. Моя текущая среда Windows: win8 x64, node 0.10.x. Все работает хорошо.
ОБНОВЛЕНИЕ (2016): Примечание для Windows 10 x64
Visual Studio Express Desktop Edition решает проблему node -gyp. Просто установите его, и он будет работать для node -gyp.
Как я это решил.
My enviroment: Windows 8.1 x64, Node v0.12.2, npm v2.7.5
Установить все компоненты:
После установки всех компонентов [Важно]:
Откройте "Командная строка разработчика для VS2012" в качестве администратора
[для VS 2012] Перейдите в
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools
[для VS 2013] Перейдите в
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
Выполнить команду "VsDevCmd.bat"
Затем вы можете выполнить эти cmd:
npm install node-gyp -g
npm install bcrypt -g
И для меня это сработало (мне сложно запустить, потому что с самого начала я не выполняю команду "VsDevCmd.bat" ).
Примечание:
Глядя на ошибку, я вижу
c:\users\timd.node-gyp\0.8.18\deps\uv\include\ares.h(49): фатальная ошибка C1083: невозможно открыть файл include: 'winsock2.h': такого файла или каталог
Вам нужно будет исправить это, прежде чем двигаться дальше. Предположительно, вы либо поняли это, либо двинулись дальше, так как это был месяц.
Взгляните на winsock2.h, нет такого файла или каталога
Для тех, кто все еще сталкивается с ошибками при установке bcrypt в 2017 году.
Модуль npm был выпущен для обработки связанных с Window проблем зависимости Felix Rieseberg и других участников..NET Framework 4.5.1 - единственное требование для Windows 7/Vista.
С правами администратора выполните:
npm install --g --production windows-build-tools
npm install bcrypt