Ошибка компиляции 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

I've already installed Python < v2.7 and .NET Framework SDK 2.0. I also downloaded a package called win7sdkx64.exe which was what i think the sdk for Visual Studio. I liked all of the dependencies in my Path as following:

%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 полностью?

23
Лучший совет, убедитесь, что вы внимательно изучаете документацию по установке. В частности, убедитесь, что установлены OpenSSL и Python2.7. Это фактически часть пакета node-gyp, который выполняет часть компиляции.
добавлено автор Joe Mills, источник

5 ответы

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

55
добавлено
это должно быть выбрано как ответ, пакет bcrypt-nodejs работает над установками Windows
добавлено автор Serdar, источник
@AdrianLynch .. и результаты сравнения, протестированные на 64-битной машине Windows i7-3770. bcrypt : 267ms, bcryptjs : 334ms, twin-bcrypt : 752ms, bcrypt-nodejs : 688ms. Bcryptjs кажется отличной альтернативой.
добавлено автор Ricky Boyce, источник
Однако производительность намного медленнее. github.com/adrianblynch/bcrypt-vs-bcrypt
добавлено автор Adrian Lynch, источник
Спасибо за это. переход на bcrypt-nodejs, сделанный для развертывания на Amazon Elastic Beanstalk, наконец, работает.
добавлено автор emilebaizel, источник

This is correct way to install bcrypt over npm on Windows 7/8 x64

Pre:

После:

Откройте «Командная строка разработчика для VS2012» в качестве администратора и установите тестовую установку:

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

постскриптум Моя текущая среда Windows: win8 x64, node 0.10.x. Все работает хорошо.

UPDATE (2016): Note for Windows 10 x64

Visual Studio Express Desktop Edition solves node-gyp problem. Just install it and it will work for node-gyp.

Ссылки:

36
добавлено
Это единственное решение, которое сработало. После 4 часов поиска и тестирования
добавлено автор Ovidiu, источник
Я уже установил Visual Studio 2015. Я установил Python 2.7. Неважно, то npm install node-gyp -g & npm install bcrypt -g прошел гладко. И мне удалось запустить npm install в моем проекте. Благодаря!
добавлено автор Pavel Kostenko, источник
Этот ответ заслуживает большего количества очков!
добавлено автор Rodrigo Polo, источник
Я согласен, использование другого пакета не является ответом. У меня есть bcrypt, работающий над окнами и сопротивляющийся с использованием bcryptjs или альтернатив.
добавлено автор devman81, источник

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

Мое окружение: Windows 8.1 x64, Node v0.12.2, npm v2.7.5

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

  1. Установите последнюю версию 2.x Python, загрузить Python (я скачал 2.7.9)
  2. Установить Visual Studio 2012/13 Express (или другое)
  3. Установите Windows SDK (для Windows 7/8)
  4. Установите 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

And for me it worked (I have trouble to launch, because from beginning I no Выполнить команду «VsDevCmd.bat»).

Note:

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

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

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

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

npm install --g --production windows-build-tools
npm install bcrypt
0
добавлено

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

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

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

Take a look at winsock2.h, no such file or directory

0
добавлено
Связанный вопрос предполагает установку Windows 7 SDK. Как у меня, так и у меня (из Google) был установлен Windows 7 SDK, но ошибка сохраняется. У тебя есть другие идеи?
добавлено автор Chris Browne, источник
У меня также есть SDK Windows 8/8.1, установленный на моих окнах 8, и все еще есть ошибка ...
добавлено автор Ariel Altamirano, источник
pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Node.js — русскоговорящее сообщество
Node.js — русскоговорящее сообщество
4 160 участник(ов)

Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было комфортным. Правила: https://rudevs.network/ByaMH6un7 См. также: @js_ru, @react_js, @angular_ru, @vuejs_ru, @devops_ru Вакансии и поиск работы: @javascript_jobs и @nodejs_jobs

Node: русскоязычное сообщество
Node: русскоязычное сообщество
28 участник(ов)

Независимое сообщество node разработчиков на русском языке. Правила: https://node-chat.ru/ Партнеры: @react_ru @ru_vuejs @nuxtjs_ru @ru_docker @nlp_ru