MOERUZE Blog

株式会社モエルゼのブログ

Windows10でnpm install bcryptをした際に発生するnode-gypのエラーを回避する方法

Windows10でnpm install bcryptをした際に発生するnode-gypのエラーを回避する方法

Moeruze開発者の松本です。
npm install bcryptで地味に苦労したので、忘備録的に残します。

はじめに

Windows上でbcryptをインストールするためには、事前に下記の準備が必要です。

  1. Python 2.7をインストールする
  2. npm config set python python2.7をする
  3. Visual Studio 2015をインストールする
  4. Windows 10 SDK, Windows 8.1 SDKをインストールする
  5. Visual Studio 2015からVisual C++/Windowsのテンプレートで新規プロジェクトを作成してBuild Toolsをインストールする
  6. windows-build-toolsをnpm install -gする
  7. npm config set msvs_version 2015をする
  8. node-gypをnpm install -gする
  9. OpenSSLをインストールする
  10. bcryptをインストールする

流れとしては上記のような感じです。
WindowsMacLinuxに比べて手順が多いです。
.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はしっかりインストールしておいた方が良いですね。