MENU

nodenvでNode.jsをプロジェクト毎にバージョンを管理する(anyenvを使用)

プロジェクト毎にNode.jsのバージョンが異なることはよくあることで、場面に応じて使用バージョンを切り替えられる環境は必須といえます。そして、Node.jsだけにとどまらず、PHPやPythonなどもバージョン管理できると便利です。そこで今回は、さまざまな言語のバージョン管理ツールを管理するanyenvを使って、nodenvでプロジェクト毎にNode.jsのバージョンを管理する方法です。

なんだかややこしい表現になってしまったので、言い換えます。
anyenvは、PHPならphpenv、Pythonならpyenv、Node.jsならnodenvといった具合にいろいろなenv系ツールを管理できるツールです。このanyenvを使ってnodenvでNode.jsのバージョン管理をする方法です。

使用環境はMacOSで、anyenvのインストールにHomebrewを使用します。事前にインストールされているものとしてすすめます。

この記事はIT女子のお気に入りフォルダで2021年11月に公開していた記事を移植したものです。記事内で使用していたNode.jsのバージョンは見直しました。

目次

anyenvをインストール

Homebrewでanyenvをインストールします。

$ brew install anyenv

初期設定をします。

$ anyenv init

ここで一度ターミナルを再起動。
すると以下のような警告が出ます。

ANYENV_DEFINITION_ROOT(/Users/whoami/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:
> anyenv install --init

焦らず、指示通りにやってみます。

$ anyenv install --init
Manifest directory doesn't exist: /Users/whoami/.config/anyenv/anyenv-install
Do you want to checkout https://github.com/anyenv/anyenv-install.git? [y/N]: y

マニフェストディレクトリを作るかどうか聞かれるので「y」と答えてエンターキーを押します。

Completed!と表示されたらOKです。

nodenvをインストール

次にnodenvをインストールしていきます。anyenvを使います。

$ anyenv install nodenv

Install nodenv succeeded!と出たらインストール成功です。
(exec $SHELL -l)するか再起動しろと言われるので、ここはコマンドでやってみます。

$ exec $SHELL -l

envを確かめます。

$ env

NODENV_ROOTNODENV_SHELLが追加されていることがわかると思います。

では、いよいよNode.jsをインストールしていきます。

Node.jsをインストール

まずは、インストール可能なバージョンを確認します。

$ nodenv install -l

めっちゃいっぱい出てきます。

ここに最新のNodeバージョンが表示されていない場合はanyenv-updateプラグインをインストールします。

$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

以下を実行して一覧を更新します。

$ anyenv update

最新バージョンまで表示されました。

では、今度こそNode.jsをインストールしていきます。
とりあえず、執筆時点での推奨版あたりを入れておきます(v18.18.0)

$ nodenv install 18.18.0

インストールしたいバージョンを指定するだけです。

次に、私の場合、やや古い環境も必要なので古いバージョンもインストールしておきます。(今回は、v16.13.0)

$ nodenv install 16.13.0

次のコマンドでインストール済みのバージョンを確認することができます。

$ nodenv whence npm

プロジェクト毎にバージョンを替える

まず、デフォルトのバージョンは最新バージョンに指定したいと思います。

$ nodenv global 18.18.0

globalで指定します。
確認してみます。

$ node -v
v18.18.0

次に、testプロジェクトでは先ほどインストールした古い方のv16.13.0を指定したいと思います。

$ cd test
test $ nodenv local 16.13.0 

testプロジェクトのディレクトリに移動し、localでバージョンを指定します。
testディレクトリに.node-versionという隠しファイルが作成されたことがわかります。念のため、testディレクトリのローカルバージョンを確認します。

$ node -v
v16.13.0

これで、プロジェクト毎にNode.jsのバージョンを管理できるようになりました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次