Подтвердить что ты не робот

Ошибка компиляции bcrypt - node.js

Я пытаюсь установить 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 полностью?

4b9b3361

Ответ 1

Отключите модуль bcrypt и вместо этого используйте собственную библиотеку JavaScript. bcrypt-nodejs не требует компиляции и обеспечивает почти ту же функциональность, что и скомпилированный bcrypt.

Ответ 2

Это правильный способ установки bcrypt поверх npm на Windows 7/8 x64

Pre:

  • установить Python http://www.python.org/download/releases/2.7.5/
  • Установить Visual Studio 2012/13 Express (или другое)
  • Установите Windows SDK (для Windows 7/8)
  • Установить Win64 OpenSSL v1.0.1g

Сообщение:

Откройте "Командная строка разработчика для 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.

Ссылки:

Ответ 3

Как я это решил.

My enviroment: Windows 8.1 x64, Node v0.12.2, npm v2.7.5

Установить все компоненты:

  • Установить последние 2.x Python, загрузить Python (я загрузил 2.7.9)
  • Установить Visual Studio 2012/13 Express (или другое)
  • Установите Windows SDK (для Windows 7/8)
  • Установите Win64 OpenSSL v1.0.1g, загрузите его из здесь (я загрузил "Win64 OpenSSL v1.0.2a" последним)

После установки всех компонентов [Важно]:

Откройте "Командная строка разработчика для 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" ).

Примечание:

  • Если он еще не выполнит попытку выполнить команду "Выполнение" в простой командной строке, открытой как "Администратор"
  • Или, если bcrypt успешно устанавливает и выполняет npm install в вашем проекте, он терпит неудачу. Проверьте версию bcrypt в package.json. В моем случае был "bcrypt": была указана зависимость "0.7.x", и у меня есть более новая версия bcryot, поэтому после изменения ее на "bcrypt": "0.8.x" все установлено успешно.

Ответ 4

Глядя на ошибку, я вижу

c:\users\timd.node-gyp\0.8.18\deps\uv\include\ares.h(49): фатальная ошибка C1083: невозможно открыть файл include: 'winsock2.h': такого файла или каталог

Вам нужно будет исправить это, прежде чем двигаться дальше. Предположительно, вы либо поняли это, либо двинулись дальше, так как это был месяц.

Взгляните на winsock2.h, нет такого файла или каталога

Ответ 5

Для тех, кто все еще сталкивается с ошибками при установке bcrypt в 2017 году.

Модуль npm был выпущен для обработки связанных с Window проблем зависимости Felix Rieseberg и других участников..NET Framework 4.5.1 - единственное требование для Windows 7/Vista.

С правами администратора выполните:

npm install --g --production windows-build-tools
npm install bcrypt