その他

【Volta・Node.js・pnpm】バージョンが一致しているにもかかわらず、pnpm installを実行すると「Unsupported environment (bad pnpm and/or Node.js version)」が表示される

その他
この記事は約2分で読めます。

状況

  • Volta で nodeとpnpmのバージョン管理を行なっている。
  • pnpm install を行なった際、nodeのバージョンが異なっているというエラーが発生 ( Unsupported environment (bad pnpm and/or Node.js version))
  • node -v, which node, volta list, volta list node -c コマンドの実行結果を見る限りは、意図したバージョンを参照するよう設定されている
  • which pnpm も同一

「node -v」も「which node」も期待通りなのに、なぜか「Unsupported environment (bad pnpm and/or Node.js version)」とエラーが吐かれています。

公式を確認

pnpm Support | Volta
pnpm Support
  • pnpmのサポートは現在実験的な段階。
  • pnpmを有効にするには、VOLTA_FEATURE_PNPM環境変数を1に設定する必要がある。
  • グローバルインストール(pnpm install -gなど)はサポートされておらず、エラーになる。
  • 以前にpnpmをインストールしていた場合は、手動でvolta install pnpmを使って再インストールする必要がある。
Introduction | Volta
Introduction

上記の記事を見て一旦以下をやった

  • pnpmのバージョン固定を行うために環境変数を設定します。
export VOLTA_FEATURE_PNPM=1
  • プロジェクトの Node.js バージョンを固定する
  • プロジェクトの pnpm のバージョンを固定する
# プロジェクトの Node.js バージョンを固定
volta pin node@20

# プロジェクトの pnpm のバージョンを固定
volta pin pnpm@latest

これで pnpm install をすると、成功しました!!!!

学び

Voltaを使用する際は、バージョンを明示的に定義することを徹底する。

Voltaのpnpmサポートは試験運用段階っぽいので、初心者は違うバージョン管理ツールを使ったほうが良さそう。

蛇足

「Unsupported environment (bad pnpm and/or Node.js version)」のenvironmentは環境ではなく、実行環境と訳すのが正らしいです。