windows-build-toolsが終らない場合の解決方法
Node.jsからJavaのAPIを使う
上記の記事に書いてある、windows-build-toolsのインストール(npm install --global --production windows-build-tools
、Windows10の場合)をした時に、次のようにPythonをインストールしたところで止まる(コンソールが一向に進まない)現象が発生しました。
強制終了しても、node-gyp
のインストールでエラーが出ます。このnode-gyp
のインストールをできるようにした手順です。
ちなみにStack Overflowなどでは、僕が正常にインストールできた時よりも前に同様の問題が発生しているようなので、最近発生したわけではなく、何らかの条件で発生してそうですね。
インストールの終了と状況の確認
Ctrl+Cでインストールを強制終了します。
次のコマンドを実行すると、windows-build-tools
がインストールできていることが確認できます。
npm list --global --depth=0
また、C:\Users\<ユーザー名>\.windows-build-tools\python27
にPythonがインストールされていることも確認できます。
解決方法
次のコマンドを実行し、npmのコンフィグファイルの場所を確認します。
> npm config get globalconfig
C:\Users\<ユーザー名>\AppData\Roaming\npm\etc\npmrc
npmrcファイルがない場合
- 次のコマンドを実行する
npm config --global edit
- エディタが開くので何も変更せずに閉じる
→C:\Users\<ユーザー名>\AppData\Roaming\npm\etc\npmrc
が作成される - 次のコマンドでファイルの中身を空にする
echo "" > C:\Users\<ユーザー名>\AppData\Roaming\npm\etc\npmrc
npmrcをテキストエディタで開き次の行を追加します。
python=C:\Users\<ユーザー名>\.windows-build-tools\python27\python.exe
- npmrcを新規作成した場合は1行目に追加する
- UTF-8(BOMなし)で保存すること
これでnode-gyp
のビルドが通るようになります。
試したこと
現象が発生する環境と発生しなかった環境の差分をみていくなかで、npmrcファイルがあるかないかでした。なのでnpmrcファイルを作成してから実行してもダメでした。
次のようにnpm bin --global
でPATHが無いよと言われたので、Windowsの環境変数PATHに追加しましたがこれでもダメでした。
エラーはPythonがないとかなので、Windowsの環境変数PATHにPythonのパスを追加してみてもダメ。
結果的にはnpmrcにPyhtonのパスを追加でビルドできました。