Error compiling bcrypt - node.js

25,810

Solution 1

Ditch the bcrypt module and use a native JavaScript library instead. bcrypt-nodejs requires no compilation and provides almost the same functionality as the compiled bcrypt.

Solution 2

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

Pre:

Post:

Open "Developer Command Prompt for VS2012" as Administrator and test install:

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

p.s. My current Windows environment: win8 x64, node 0.10.x. All works nice.

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.

Links:

Solution 3

How I resolved this.

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

Install all components:

  1. Install latest 2.x Python, download Python (I downloaded 2.7.9)
  2. Install Visual Studio 2012/13 Express (or other)
  3. Install Windows SDK (for Windows 7 / 8)
  4. Install Win64 OpenSSL v1.0.1g, download it from here (I loaded "Win64 OpenSSL v1.0.2a" latest)

After all components is installed [Important]:

Open "Developer Command Prompt for VS2012" as Administrator

[for VS 2012] Go to

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

[for VS 2013] Go to

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

Execute command "VsDevCmd.bat"

Then you can execute these 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 execute command "VsDevCmd.bat").

Note:

  1. If it still not executes try to Execute command in simple Command prompt opened as Administrator
  2. Or if bcrypt is installing successfully and executing npm install in your project it fails. Check bcrypt version in package.json. In my case there was "bcrypt": "0.7.x" dependency was specified, and I have newer bcryot version, so after changind it to "bcrypt": "0.8.x", everything installed successfully.

Solution 4

For anyone still facing errors installing bcrypt in 2017.

An npm module has been released to handle Window's native dependency issues by Felix Rieseberg and other contributors. .NET Framework 4.5.1 is the only requirement for Windows 7 / Vista.

With admin privileges, run:

npm install --g --production windows-build-tools
npm install bcrypt
Share:
25,810
Tim Daubenschütz
Author by

Tim Daubenschütz

Updated on July 12, 2022

Comments

  • Tim Daubenschütz
    Tim Daubenschütz almost 2 years

    I'm trying to install bycrpt via npm install using Windows 7 Ultimate x64. This is my install log:

    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
    

    but i still get these errors. What can i try next? Install Visual Studio completly?