Windows10でnpm install bcryptをした際に発生するnode-gypのエラーを回避する方法
Windows10でnpm install bcryptをした際に発生するnode-gypのエラーを回避する方法
Moeruze開発者の松本です。
npm install bcryptで地味に苦労したので、忘備録的に残します。
はじめに
Windows上でbcryptをインストールするためには、事前に下記の準備が必要です。
- Python 2.7をインストールする
- npm config set python python2.7をする
- Visual Studio 2015をインストールする
- Windows 10 SDK, Windows 8.1 SDKをインストールする
- Visual Studio 2015からVisual C++/Windowsのテンプレートで新規プロジェクトを作成してBuild Toolsをインストールする
- windows-build-toolsをnpm install -gする
- npm config set msvs_version 2015をする
- node-gypをnpm install -gする
- OpenSSLをインストールする
- bcryptをインストールする
流れとしては上記のような感じです。
WindowsはMacやLinuxに比べて手順が多いです。
.NET Framework, Visual C++のBuild Toolsが必要になるので、それらをインストールしなければなりません。
インストールに関しては、node-gypのInstallationとIssuesに情報があるので、こちらもあわせてご参考下さい。
https://github.com/nodejs/node-gyp
それでは実際に自分が導入した際の手順を説明します。
環境
参考までに、インストール時の自分の環境はこちらです。
- Windows v10.0.10586 64bit
- Node.js v6.5.0 (nvm)
- npm v3.10.8
Python 2.7をインストールする
公式サイトからPython 2.7のインストールしてください。
3.x系ではダメです。
インストールしたらPATHの設定をします
その後、下記のコマンドを実行します。
C:\Users\user> npm config set python python2.7
Visual Studio 2015をインストールする
node-gypの動作に.NET FrameworkやVisual C++のBuild Toolsが必要になるので、それらをインストールします。
一番簡単なのがVisual Studio 2015をインストールする方法です。
公式サイトからインストールしてください。
無料版のCommunity, デフォルト設定でのインストールでOKです。
Windows 10 SDK, Windows 8.1 SDKをインストールする
この手順は次の手順に含まれるかもしれないので、不要かもしれません。
自分の手順ではこちらを行っていたので、一応説明します。
node-gypインストール後に、bcriptでのbuild時にWindows SDKが見つからないというエラーが発生した際にこちらで解決しました。
Windows 8.1 SDK
Windows 10 SDK
上記をそれぞれインストールしてください。
PATHの設定などは不要です。
Visual Studio 2015からVisual C++/Windowsのテンプレートで新規プロジェクトを作成してBuild Toolsをインストールする
Visual Studio 2015をインストールしただけでは、Visual C++のBuild Toolsが使用できる状態ではありません。
Visual C++/Windowsのテンプレートで新規プロジェクトを作成すると、依存パッケージであるVisual C++のBuild Toolsなど諸々をダウンロードして使用できる状態にしてくれます。
適当にテンプレートを作成してください。
windows-build-toolsをnpm install -gする
npmでwindows-build-toolsをグローバルインストールします。
これは管理者権限のコマンドプロンプトでインストールしなければ失敗します。
C:\Windows\system32> npm install --global --production windows-build-tools
npm config set msvs_version 2015をする
コマンドプロンプトで下記コマンドを実行してください。
ユーザー権限でOKです。
C:\Users\user> npm config set msvs_version 2015
node-gypをnpm install -gする
これでnode-gypの準備が整いました。
それではインストールしましょう。
C:\Users\user> npm i -g node-gyp
0. OpenSSLをインストールする
bcryptがOpenSSLに依存しているので、インストールします。
こちらからインストールしてください。
自分の環境ではWin64 OpenSSL v1.1.0でした。
Light版ではダメです。
インストール後にPATHを設定してください。
例. C:\OpenSSL-Win64\bin
bcryptをインストールする
これで目的のbcryptをインストールできるようになります。
C:\Users\user> npm i -g bcrypt
おわり
bcryptのインストールというか、node-gypをまともにインストールするのが手順が多く地味に苦労します。
あまり覚えていないのですが、いつだったかbcrypt以外にもnode-gypでエラーが発生した覚えがあるので、node-gypはしっかりインストールしておいた方が良いですね。