状況
- 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は環境ではなく、実行環境と訳すのが正らしいです。