Node.js でビルドとか Sass とか動かそうとすると Windows にないコマンドを使っているため実行できないことが多々あり、解消するために windows-build-tools
というものがあるのですが、これがどうにもこうにも yarn
でインストールできなかったので、インストールできた時の対処法を備忘録として残しておきます。
現象
兎にも角にも下記のような画面になり、yarn global add windows-build-tools
が途中でハングアップしてしまいます。
回避策
調査方法は後述するとしてインストールできた手順を示します。
方法(い)
-
%USERPROFILE%\.windows-build-tools
フォルダを削除する。 -
Python27
を削除する。- Windows の
アプリと機能
からアンイストールする。 -
Python27
がインストールされていたフォルダを探して削除する。(C:\Python27
など)
- Windows の
-
yarn global add windows-build-tools
をcmd.exe
もしくはPowerShell.exe
で管理者権限で再実行する。(重要)
方法(ろ)
- Python2.7 をインストールする。
-
Visual Studio Build Tools 2017 を下記を含む構成でインストールする。
- デスクトップ用VC++ 2015.3 v14.00(v140)ツールセット(必須)
- Node.js ビルドツール (多分必須)
-
yarn
のコンフィグを設定する。
$ yarn config python "C:\\python27\\python.exe" -g
$ yarn config msvs_version 2017 -g
-
yarn global add windows-build-tools
をcmd.exe
もしくはPowerShell.exe
の管理者権限で再実行する。(重要)
調査
回避策を見つけるまでの軌跡です。
ハングアップしたところで何が起きているのか見るために --verbose
や --debug
を追加してみる。
→ 特に追記された情報もなく再びハングアップする。
本家 の issue を覗いて見る。
→ 下記の投稿を発見する。
https://github.com/felixrieseberg/windows-build-tools/issues/154
npm install --global windows-build-tools
を試してみる。
→ Python 2.7.10 is already installed, not installing again.
でハングアップする。
→ バグなので Python
を削除せよという記事を見つける。
https://github.com/felixrieseberg/windows-build-tools/issues/147
再び npm install --global windows-build-tools
を試してみる。
→ 今度は Successfully installed Python 2.7
でハングアップする。
→ バグなので %USERPROFILE%\.windows-build-tools
を削除せよという記事を見つける。
http://m-miya.blog.jp/archives/1071590052.html
https://github.com/felixrieseberg/windows-build-tools/issues/33
再び npm install --global windows-build-tools
を試してみる。
→ インストールが完了する。
npm
ではなく yarn
でインストールしたいので上記、回避手順を実行してみる。
→ 無事、yarn
でインストールが完了する。
再発し、過去の手順では上手く行かなかったので、再度調査をしました。
windows-build-tools
を使わない手動インストールの方法(有名)を再度試す。
https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#prerequisites
本来インストールしたいツールを yarn global add xxx
でインストールする。
→ 依存関係解決のため windows-build-tool
インストールが実行されてしまい、下記の状態でハングアップする。
---------- Visual Studio Build Tools ----------
Still waiting for installer log file...
------------------- Python -------------------
Successfully installed Python 2.7
うーん…と思いつつ、上記の手動インストールがあるページに、下記と書かれていることを見つける。
Option 1: Install all the required tools and configurations using Microsoft's windows-build-tools by running npm install -g windows-build-tools from an elevated PowerShell (run as Administrator).
いちかばちか、愛用の Msys2
ターミナルではなく、PowerShell
で yarn global add windows-build-tools
を実行する。
→ 無事、yarn
でインストールが完了する。
所管
ハングアップの詳細が解ってから調査が捗ったのでログは大事だと痛感しました。
yarn
でログを出す方法を学ばなければと思いました。
以上