Globalにインストールされたnode-gypを更新する[Windows]
node-gypは今日もまた、数多くのnodejs開発者を悩ませています[要出典]。
node-gypが古いと、Visual Studio 2022を認識せず、ビルドに失敗することが知られています。
https://github.com/nodejs/node-gyp/issues/2520
私の環境ではglobalにインストールされたnode-gypが8.2.0だったため、Visual Studio 2022でビルドを行えませんでした。しかし、npm update -g node-gypではなぜかアップデートされなかったので、解決した方法を書いておきます。
グローバルにインストールされたNPMパッケージを更新するとそれまで動いていたものが動かなくなることがあります。十分ご注意ください。
また、npmを管理者権限で使うのは少々危ないので、自己責任でお願いします。
アップデートする方法
npx node-gypでインストール先とバージョンを確認します。末尾にこんな感じで出ます。
[email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp
[email protected]
コマンドプロンプト(コンソールならなんでもいいんですが)を管理者権限で開きます。
NPMを管理者権限で動かすのは危ないので、できれば一時的に自分にC:\Program Files\nodejs\node_modules\npm\をいじる権限を与え、コマンドプロンプトは普通の権限で起動することをお勧めします。
開いたコマンドプロンプトで、
cd C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp
を実行します。
C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp
の部分はnpx node-gypの結果に合わせて適宜変更してください。
次に、次のコマンドを実行してください。
npm update node-gyp
ここでもう一度
npx node-gyp
を実行して、
[email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp
[email protected]
が出たら成功です。お疲れさまでした。(この記事を見たときにはすでに最新バージョンが違っているかもしれませんから、node-gypの最新のバージョンをnpm等で調べてください。)