Node.jsバージョンをプロジェクトごとに自動で切り替える設定をnvmを使って実現

このブログではアフィリエイト・アドセンス広告を利用しています

当ブログでは、アドセンス・アフィリエイト広告を掲載しています。
消費者庁が発表しているルールに沿って記事を作成していますが、問題のある表現を見つけた際にはご連絡ください。

プロジェクトごとに使用するNode.jsのバージョンが異なることはよくある話です。
今回は、Node.jsバージョン管理マネージャー「nvm」を使って、プロジェクトごとに自動でNode.jsのバージョンが勝手に切り替わるようになる設定方法の備忘録です。

目次(読みたいところへジャンプ!)

    nvmのインストールはこちらから

    >>>nvm公式

    brewでのインストールを推奨していないようなので、公式のReadmeを参照してインストールしてください。

    プロジェクト単位でNode.jsのバージョンを切り替える「.nvmrc」

    プロジェクトごとにNode.jsのバージョン管理をするために使用するのは.nvmrcファイルです。このファイルには使用するNodeのバージョンだけを記述しておきます。

    20.11.1

    .nvmrcファイルがある状態でnvm use コマンドを叩くと、.nvmrcに記述されているNode.jsを使用するようになります。そのバージョンがインストールされていないなら、自動でインストールしてくれます。

    ただ、nvm use コマンド打つの忘れがちではありませんか?
    私は忘れてしまいます。

    そこで、次の自動で.nvmrcファイルを参照してnvm use コマンドを実行する命令を.zshrcファイルに記述しておきます。

    nvm useを自動実行するよう.zshrcに記述する内容

    こちらも最新の設定情報はnvm公式のReadmeを参照するのが安心です。
    現時点でReadMeに記述されている設定内容はこちら。

    # place this after nvm initialization!
    autoload -U add-zsh-hook
    
    load-nvmrc() {
      local nvmrc_path
      nvmrc_path="$(nvm_find_nvmrc)"
    
      if [ -n "$nvmrc_path" ]; then
        local nvmrc_node_version
        nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
    
        if [ "$nvmrc_node_version" = "N/A" ]; then
          nvm install
        elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
          nvm use
        fi
      elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
        echo "Reverting to nvm default version"
        nvm use default
      fi
    }
    
    add-zsh-hook chpwd load-nvmrc
    load-nvmrc

    引用元:nvm github Readme

    これで、いちいちnvm use しなくても自動でプロジェクトで使用すべきNode.jsが自動でインストールされ、current指定されるようになります。

    お試しください。

    同じカテゴリの関連記事リスト