正直あんまりわかってないけどまあ解決したのでメモしておく。
ざっくり
管理者権限のPowerShellで npm install --global windows-build-tools
したら解決した。
- https://www.npmjs.com/package/windows-build-tools
環境
- node v4.5.0
- Windows 10
なお現在node.jsの最新バージョンはv8.4です。
問題: “VCBuild.exe”がないと言われる
何かをインストールしようとしたとき、こんなエラーが出ました。
C:\Users\Ginpei\project\foo>npm install
> [email protected] install C:\Users\Ginpei\project\foo\node_modules\jsdom\node_modules\contextify
> node-gyp rebuild
C:\Users\Ginpei\project\foo\node_modules\jsdom\node_modules\contextify>if not defined npm_config_node_gyp (node "C:\Users\Ginpei\AppData\Roaming\nvm\v4.5.0\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe". To fix this, 1) install the .NET Framework 2.0 SDK, 2) install Microsoft Visual Studio 2005 or 3) add the loca tion of the component to the system path if it is installed elsewhere. [C:\Users\Ginpei\project\foo\node_modules\jsdom\node_modules\contextify\build\binding.sln]
gyp ERR! build error
...
node-gypでこける。なんかFAQだった気がする。
対応
MS Visual Studioをインストールすればいいのかなーと思ったけど、windows-build-toolsなるnpmパッケージでいけるらしい。npmパッケージじゃないのもあるのかなあ。
Windows PowerShellを管理者権限で起動
管理者権限じゃないとエラー。
>npm install --global --production windows-build-tools
-
> [email protected] postinstall C:\Program Files\nodejs\node_modules\windows-build-tools
> node ./lib/index.js
Downloading BuildTools_Full.exe
[> ] 0.0% (0 B/s)
Downloading python-2.7.13.msi
[> ] 0.0% (0 B/s)
Downloaded python-2.7.13.msi. Saved to C:\Users\Ginpei\.windows-build-tools\python-2.7.13.msi.
Starting installation...
Please restart this script from an administrative PowerShell!
The build tools cannot be installed without administrative rights.
To fix, right-click on PowerShell and run "as Administrator".
npm ERR! Windows_NT 10.0.15063
...
というわけで、言われた通りに管理者権限でPowerShellを起動。
で、この一行です。
npm install --global --production windows-build-tools
ここでツールをビルドしてるっぽくて相当時間かかった。
終わったら npm install
し直すと、今度は成功した。やったね。
おしまい。
アンインストール
どうもwindows-build-toolsインストール前の状態への戻し方がわからない。npmのパッケージを削除してみたが、特に問題なく npm install
が成功するようになってしまった。(まあ別にいいんだけど!)
>npm uninstall --global windows-build-tools
WindowsのSystem settingsから “Add or remote program” で一覧を開いて、今日インストールされたものの中からそれっぽいものを探す。どうやら以下の三つ。
- Python 2.x.x
- Microsoft Visual C++ Build Tools
- Microsoft Visual C++ 2015 Redistributable (x64)
アンインストールするコマンドっぽいものはドキュメントに書いてあるんだけど、使い方がわからない……。これ↓と同じ症状。