Mainly Devel Notes

Twitter, GitHub, StackOverflow: @ovrmrw (short hand of "overmorrow" that means the day after tomorrow)

Windowsでnpm installの赤いエラーに悩まされているアナタへ

Node.js, Windows, npm, 開発環境

WindowsでNode.jsの開発環境を整えるのは多くの人にとって鬼門だったかと思います。
VC++のなんちゃらをインストールせよとかWindows SDKが別途必要とか言われてもよくわからないし、32bitはあーで64bitはこーでとか、手探りでやってみてもnpm install赤いエラー出まくるし、使いもしない古いVisual Studio 2010とかインストールさせられてHDDにゴミだけ残るし、こんなんやってられっか!!となってもおかしくない状況が続いていました。少なくとも僕の中では。

npm installはほとんどの場合ライブラリをダウンロードするだけですが、ものによってはダウンロード後にビルドが発生するものがあります。 環境が適切に構築されていないとこれが赤いエラーの原因になるんですね。まじぶちきれそうになります。

ところが最近ではMicrosoftも重い腰を上げたのか、(いつの間にか)ガイドラインを示してくれる時代になりました。 どこからともなくツイッターで流れてきたこの情報を基にやってみたら僕のWindows赤いエラーを吐かなくなりましたので、ここにメモを残します。
(Windows 7 32bit, 10 64bitで検証済み)

まずはNode.jsをインストール

Node.js
Windows環境の場合はnpm3がセットになってるv5.x.x Stableがいいですね。(2015年12月現在)
npm3はnode_modulesのフォルダーをフラットに展開してくれるので、Windowsに特有のフォルダーツリーが長すぎて削除できない問題を回避できます。

Gitをインストール

Git
npm installのときにライブラリによってはgitコマンドを使う場合があったかと思います。
インストール時に、"Use Git from the Windows Command Prompt"を選択しておくと色々捗ります。

Microsoftガイドラインに従ってVC++なんちゃらとPythonをインストールしてnpm config set

Configuring your Windows development environment
上記ページはとても参考になります。英語が読めれば目を通しておいて損はありません。
今回はこの中からとりあえず万人におすすめできそうなやり方を抜粋します。

  1. Install VC++ Build Tools Technical Preview
    • (日本語訳: VC++ Build Tools Technical Previewをインストールしてください。)
    • Visual Studio 2015(VS Codeではない)が既にインストールされているとインストールできませんので、Visual Studioは一旦潔くアンインストールするのが良いでしょう。
    • カスタムインストールする場合でも"Windows 8.1 SDK"のチェックを外してはいけません。必須です。
    • (2016-1-25追記)カスタムインストールを選択して"Windows 8.1 SDK"と"Windows 10 SDK"のチェックを入れます。両方必須らしいです。
    • インストールするために.NET Framework 4.5.1以上が必要です。
  2. Install Python 2.7 (v3.x.x is not supported), and run npm config set python python2.7
    • (日本語訳: Python2.7をインストールして、npm config setしてください。)
    • Python 2.7.xをダウンロードしてインストールします。
    • インストール後、コマンドプロンプトnpm config set python python2.7を実行します。
    • npm config listで設定がされたことを確認できます。
  3. Launch cmd, npm config set msvs_version 2015 --global (this is instead of npm install [package name] --msvs_version=2015 every time.)
    • (日本語訳: コマンドプロンプトを起動してnpm config set msvs_version 2015 --globalを実行しましょう。そうすれば毎回--msvs_version=2015を書かなくて済みます。)
    • 指示通りにコマンドプロンプトを起動してnpm config set msvs_version 2015 --globalを実行します。
    • npm config listで設定がされたことを確認できます。
  4. SO MUCH npm install
    • (日本語訳: じゃんじゃんnpm installしちゃって。)

node-gypをグローバルインストール

npm install node-gyp -g

必要なのかどうかはわかりませんが個人的にはおまじないのつもりでやります。これがもしエラーになるならコマンドプロンプトを管理者権限で実行してみてください。

ビルドでコケやすいライブラリで試してみる

上記ページでは以下のライブラリでちゃんとビルドされるか試してみてね、と書いてありますのでやってみます。(原文: Here are a few packages you can try installing to see if your environment is set up properly.)

  • bson
  • bufferutil
  • kerberos
  • node-sass
  • sqlite3
  • phantomjs
  • utf-8-validate

適当なフォルダーを作り、コマンドプロンプトで一気にインストールしてみます。

npm install bson bufferutil kerberos node-sass sqlite3 phantomjs utf-8-validate

赤いエラーが出なければOKです。

ここまでやってもダメなら(2015-12-27追記)

最近セットアップしたWindows 10 64bitでは、ここまでやってもエラーが発生しました。
その場合の解決方法は、Visual Studio 2015 Community Editionをインストールすることです。
EnterpriseでもCodeでもありません、Visual Studio Communityをダウンロードしてください。

ちなみに、インストールの際はカスタムインストールを選択し、チェックは全て外してOKです。

その後もう一度「ビルドでコケやすいライブラリで試してみる」をやってみてください。
僕はこれでエラーが一切出なくなりました


以上です、ありがとうございました。