🤝

nodenvとVoltaを共存させる方法

2024/11/18に公開

普段の業務では、基本的にnodenvを使っています。しかし、別のプロジェクトではVoltaだったりして、共存させる必要がありました。
誰かの役に立つかもしれないので、使っている設定を公開します。

※nodenvとVoltaがインストールされている前提です。

.zshrcファイルに以下のスクリプトを追加

priority_node_env() {
  echo "Checking for Volta in package.json..."
  if [ -f package.json ] && grep -q '"volta":' package.json; then
    export VOLTA_HOME="$HOME/.volta"
    export PATH="$VOLTA_HOME/bin:$PATH"
    echo "Using Volta"
  else
    export PATH="$HOME/.anyenv/bin:$PATH"
    eval "$(nodenv init -)"
    echo "Using nodenv"
  fi
}
priority_node_env

package.jsonの中に、"volta"という文字列があるかどうかで、条件分岐させています。なければnodenvを使います。

設定を反映させるために、シェルを再読み込み

source ~/.zshrc

まとめ

もし、「こっちの書き方の方が良いよ!」などがありましたら、教えていただけると助かります。