転職とともにアウトプットする機会がガクンと減ってしまい、このままじゃまずいぞということで自分用に少しずつ記事を投稿していくことにしました。
今回はNode.jsのバージョン管理をnodenvで、nodenvの管理をanyenvでする方法をメモしていきたいと思います。
環境
macOS Big Sur 11.3.1
手順
- Homebrewのインストール
- anyenvのインストール
- nodenvのインストール
- Node.jsのインストール
Homebrewのインストール
まずはHomebrewをインストールしてきます。
HomebrewとはmacOS上で動作するパッケージ管理システムです。(windowsでは動作しません)
パッケージ管理システムとは、各種ソフトウェアのインストールやアンインストール、また、ソフトウェア同士やライブラリとの依存関係を管理してくれるシステムのことです。
どこが便利なのかというと、ブラウザなどから直接ダウンロード → インストールをしてくると、最新バージョンがリリースされた際に再度ダウンロード → インストールをしなければなりません。
その際に、前のバージョンの関連ファイルを削除する必要があったり、削除するにもどれが関連ファイルなのかを見分ける必要があります。
そんな手間をコマンドひとつで自動でしてくれるのが、パッケージ管理システムです。
まずはインストールされているか確認します。
brew -v
入っていなければインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
無事に入ったか再度確認します。
brew -v
バージョンが表示されたらインストール完了です。
Homebrew 3.2.16
Homebrew/homebrew-core (git revision f32b02f82ba; last commit 2021-10-13)
Homebrew/homebrew-cask (git revision 5b3abdb847; last commit 2021-10-13)
anyenvのインストール
次にanyanvをインストールします。
anyanvとはNode.jsでnodenvを、Rubyならrbenvを、といったように、言語のバージョンを管理してくれる **env たちを管理するものです。
なぜ言語のバージョンを管理する必要があるのかというと、例えば、プロジェクトAで使用するNode.jsのバージョンがv13系で、プロジェクトBのNode.jsのバージョンがv14系だった場合、プロジェクトAからBへ作業を切り替える際にv14系へアップデートをする必要があります。
また逆に、プロジェクトAの作業に戻る際はv13系に戻さなくてはなりません。
このような面倒な作業をコマンド一つでやってくれるのがnodenvで、そのnodenvを管理してくれるのがanyanvなのです。複雑・・・!
Homebrewを使ってインストールしてみましょう。
(GitHubからダウンロードしてインストールすることも可能です。)
brew install anyenv
anyenvを初期化します。
anyenv install --init
パスの設定をします。(zshの場合)
echo 'eval "$(anyenv init -)"' >> ~/.zshrc
シェルを再起動します。
exec $SHELL -l
以上でインストール完了です。
nodenvのインストール
次にnodenvをインストールします。
nodenvとはNode.jsのバージョン管理ツールです。プロジェクトを移動するだけでNode.jsのバージョンを自動で切り替えることができます。
anyenvからインストールをします。
anyenv install nodenv
シェルを再起動します。
exec $SHELL -l
確認してみます。
nodenv
下記のようにバージョン番号等が表示されれば成功です。
nodenv 1.4.0+3.631d0b6
Usage: nodenv <command> [<args>]
Some useful nodenv commands are:
commands List all available nodenv commands
local Set or show the local application-specific Node version
global Set or show the global Node version
shell Set or show the shell-specific Node version
(省略)
Node.jsのインストール
最後にNode.jsをインストールして、バージョンを切り替えてみます。
Node.jsとは、もともとブラウザ上で動くJavaScriptをパソコン(OS)上でも動かせるようにする技術です。
BabelでJavaScriptをES5に変換したり、SassをCSSにコンパイルしたり、webpackでバンドルしたりなど、フロントエンド開発には欠かせないものとなっています。
まずはインストール可能なバージョンのリストを確認します。
nodenv install -l
インストールしたいバージョンを記述してインストールします。
nodenv install (インストールしたいバージョン)
# nodenv install 14.17.5
インストールが完了したらバージョンを確認してみましょう。
node -v
指定したバージョンが表示されれば完了です。
v14.17.5
Node.jsのバージョン切り替え方法
まずは指定したいプロジェクトへ移動します。
cd (プロジェクトへのパス)
ローカル指定でバージョンを設定します。
nodenv local 14.17.5
上記のlocalコマンドを実行すると、.node-version
ファイルが作成されます。
.node-version
を開いてみると、プロジェクトで使用するNode.jsのバージョンが記述されているかと思います。
nodenvは .node-version
がある場合、そのバージョンのNode.jsを使用するよう自動で切り替てくれます。
最後に
今までは先輩に教わってなんとなくでやっていたNode.jsのバージョン管理でしたが、文章にまとめてみることで理解度が増した気がします。
また、この記事を作成している途中で Volta というものがリリースされていることを知りました。Volta はなんと Windows・Mac・Linux と、どのOSでも作動するみたいです。今まではMacユーザーしかいない環境だったのですが、Windows多数の環境に変わったので便利そうだなーと思いました。
もう少し情報収集をしてみて、良さそうだったら試してみようかと思います^^
それではまた!
- Node.jsのバージョン管理にVoltaを推したい
- Node.js のバージョン管理ツール Volta を使ってみる
- 【JS】Node.jsのバージョン管理をnodenvからvoltaに変更した理由と感想
参考記事
- JavaScriptをサーバサイドで動かせる!Node.jsの魅力とは?
- homebrewとは何者か。仕組みについて調べてみた
- 【完全版】Homebrewとはなんぞや
- Node.jsとはなにか?なぜみんな使っているのか?
- Node.jsのバージョンを自動で切り替えられるnodenvが超便利
- MacにNode.jsをインストール(anyenv + nodenv編)
- anyenvとnodenvでNode.jsのバージョン管理をしよう!
- Homebrew 経由の anyenv 経由の nodenv 経由で Node.js をインストールする
- anyenv + macOS環境構築
- .bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの?