VSCodeのGUIで実行するとNodeのバージョンが古くなる問題と対処メモ
環境
- macOS + volta + VSCode
- Node.js は volta 経由で管理
- VSCode は Launcher から起動することもある
発生したエラー
VSCode の GUIから npm スクリプトを実行すると、Node.js のバージョンが古いと判定されて npm run build が失敗する現象が発生しました。
You are using Node.js 15.5.0.
Vite requires Node.js version 20.19+ or 22.12+.
Please upgrade your Node.js version.
ターミナル上で npm run build を実行すると問題なく動作するのに、VSCode 経由では古い Node.js が使われてしまう点がハマりどころです。
原因
- volta はシェル起動時に PATH を動的に書き換える仕組み
- 一方、VSCode の GUI実行は システムの PATH をそのまま利用する
- そのため、環境変数の違いによって Node.js のバージョンが食い違い、ビルド結果が変わってしまう
まとめ
- ターミナルでは volta の管理下で新しい Node.js が使われる
- VSCode GUI 実行ではシステム PATH の古い Node.js が参照される
- → GUI実行時に使われる PATH を確認・修正することで解決可能