Trying to install the node-package bcrypt on windows can be a lot of pain.
I’ve tried it on four different systems; one time it worked like a charm but the other times I had to search a lot to solve several problems.
Mostly those problems were caused by the necessary package node-gyp that couldn't be built.
This is why I decided to write a step by step guide for dummies (esp. for me) to handle that issue.
node-gyp is a dependency of a lot of packages (full list here)
If you had problems installing them this guide may also be helpful for you.
- Node and Python both should be installed as x86
- You will need Python v2.7.3 (Python v3.x.x is not supported)
- You will need to add Python as an Environment Variable (How to)
- You have to install Visual Studio 2013 with C++ Tools (DownloadPage; free Express Version)
Some of this instructions you will also find on the node-gyp readme.
How to Add Python as Environment Variable
The easiest way to achieve that is during a custom installation.
Here you should select the feature called Add python.exe to Path
npm install -g node-gyp
If you have multiple versions of Python installed you should define which Python version node-gyp has to use:
node-gyp --python /path/to/python2.7
Before you can compile node-gyp you have to set up a JSON-like file called binding.gyp.
In our example we try to set up the bindings for bcrypt.
So we use a working demo from this git repository.
Just copy the src folder and the .gyp file to your root of your package alongside the package.json file.
In the node-gyp wiki you can find a lot of examples for other bindings.
node-gyp configure now and a build directory will be created containing a .sln and a .vcxproj file.
All you have to do now is to run
If no errors occurred you've made it now.
If there are any troubles by now the reason might be that you've installed multiple versions of Visual Studio.
To build it manually you should open the binding.sln with Visual Studio.
In your Solution Explorer do a rightclick to the main project and open the properties.
Navigate to the Plattform Toolset property (see picture) and select Visual Studio 2013.
Apply your changes and rebuild your library via rightclick inside your Solution Explorer.
Some node packages depending on node-gyp run a
node-gyp rebuild by default during their installation. This will cause that your Settings for the binding.sln will be undone.
To specify wich version of Visual Studio you want to run during this installation you have to use something like this
npm install —msvs_version=2013
This should do the job.
I hope you found this article helpful. Let me know if it was solving a problem for you.