Voltaとnodenvを切り替える

Voltaの案件とnodenvの案件を行き来することになったので切り替え方法のメモ。

環境

  • macOS M1
  • volta 1.0.5
  • nodenv 1.4.1

両方有効な場合の挙動

~/.zshrc 設定を見る:

# Volta設定
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

# nodenv設定
eval "$(nodenv init -)"

この場合、nodenvが優先され、voltaが機能しない(package.json"volta" フィールドを見てくれない)。

# nodenv設定
eval "$(nodenv init -)"

# Volta設定
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

ひっくり返してこうするとVoltaが優先になり、nodenvが機能しない(.node-version を見てくれない)。

切り替え方法

Voltaを使う場合

# Volta設定
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

# nodenv設定
#eval "$(nodenv init -)"

nodenv設定をコメントアウトする。

nodenvを使う場合

# Volta設定
#export VOLTA_HOME="$HOME/.volta"
#export PATH="$VOLTA_HOME/bin:$PATH"

# nodenv設定
eval "$(nodenv init -)"

Volta設定をコメントアウトする。

いちいちコメントアウトしなくても共存できればベストだが、いい方法が見つからなかったので一旦上記のようにしている。