nodenv と volta は共存できるのか
nodenv と volta は共存可能
2026-02-07
共存可能だけど direnv 使うなりなんなりの工夫は必要。
いろいろ面倒で不安定な参照順とか考えずに direnv 使ったほうが楽だし確実。
.envrc を書いて、volta 優先したいプロジェクトでは↓のようにするだけ。
code:.envrc
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"
nodenv のときは↓のようにするだけ
code:.envrc
export NODENV_ROOT="${NODENV_ROOT:-$HOME/.nodenv}"
if -s "$NODENV_ROOT/libexec/nodenv" ; then
eval "$(nodenv init -)"
fi
nodenv の場合は nodenv init - で PATH が更新できるのでそれでよい。
実は .zshrc とかで package.json を見て volta 設定があれば volta を優先する、みたいな if 文がかけたりするんじゃないか?と思ってるけど考えてない。
ひとまずもっともコスパのいい direnv で今は満足している。
#articles_written_by_terfno
rel: nodenv と volta が同時に存在するマシンでの振る舞いメモ