【nvm】Node.jsバージョン管理

JavaScript

■ 主の PC環境一覧

OS:Windows11(WSL2:Ubuntu 22.04.4 LTS)
ブラウザ:Chrome

nvm:v18.16.0
npm:v9.5.1

■ 初めに

本記事では、Node.jsバージョン管理ツールとして nvm (node version manager) を使用します。

また、nvm以外にもたくさんバージョン管理ツールがあるので、気になる方は確認してご自身に合うツールを試してみてください。

ツール対応OS説明
nvm (node version manager)Linux, macOS, Windows・特徴:シンプルなインストールとセットアッププロセス、複数の Node.jsバージョンの簡単な切り替え、LTS版へのサポート、npmや yarnとの互換性。
利点:複数のプラットフォーム(Linux、macOS、Windows)での使用可能性、プロジェクト固有のバージョン管理。
nvs (node version switcher)Linux, macOS, Windows詳細:複数のNode.jsバージョンをインストールし、それらを簡単に切り替えることができるツール。
fnm (fast node manager)Linux, macOS, Windows特徴:Rustで書かれたクロスプラットフォームの Node.jsバージョン管理ツール。
nvmよりも高速に動作し、Windowsと Fishシェルのサポートも含まれる。
利点:高速なパフォーマンス、広範なユーザーに対する対応性。
voltaLinux, macOS, Windows特徴: プロジェクトとその依存関係を管理するアプローチを取る新しい Node.jsバージョン管理ツール。
package.jsonファイルから必要な Node.jsバージョンを自動的に検出し、インストールする。
利点他のツール(Yarn、Rustなど)の管理にも対応、プロジェクト固有のバージョン管理、グローバルシムを使用したバージョンの切り替え。
nLinux, macOS特徴シンプルさと使いやすさで知られる Node.jsバージョン管理ツール。CUIを通じて複数の Node.jsバージョンのインストール、管理、切り替えが可能。
利点開発者からの好評度が高く、多くの開発者にとって望ましい選択肢となっている。
nodenvLinux, macOS詳細:Rubyの rbenvにインスパイアされた Node.jsバージョン管理ツール。
nodistWindows特徴Windows専用の Node.jsバージョン管理ツール。
nvmや nと同様の機能を提供し、Windowsマシン上で複数の Node.jsバージョンをインストール・管理できるようにする。
利点Windowsベースの開発者にとって魅力的なオプションとなり、npmやグローバルパッケージのインストールに対応している。
nvm-windowsWindows詳細nvmの Windows向けバリエーション。
nvmの機能を Windows環境で利用できるようにするためのツールです。
nvmwWindows詳細nvmのWindows向けバージョン。
バッチスクリプトを使用してNode.jsのバージョンを管理する。
Node.jsバージョン管理ツール一覧表

[1]Linux環境で実行する必要なコマンド確認(インストール)

# アップデート、アップグレード
$ sudo apt update && sudo apt upgrade

[1.1]curlコマンドをインストール

curlコマンドとは?

curlコマンドは、クライアントからサーバーへリクエストを送り、データを転送するツールです。
主に $ curl [オプション] [URL]のように使用します。

具体的な使用例を以下に示します。

  • Webページの HTMLコンテンツを取得
  • APIに対して HTTPリクエストを送信し、データの取得や更新、削除を行う
  • ファイルのアップロードやダウンロード
  • HTTPヘッダー情報の取得
  • Basic認証や Digest認証、トークン認証などの様々な認証方法に対応したリクエストの送信
  • 定期的に Webサイトや APIにリクエストを送信し、ステータスコードや応答時間を監視
  • URLがリダイレクトされる場合、リダイレクト先の URLや遷移を調査
  • プロキシサーバーを経由してリクエストを送信
# curlコマンド存在確認
$ command -v curl

# 存在しない場合インストール
$ sudo apt install curl

[2]Node.jsをインストール

# nvmインストール  ※ 執筆時点での nvm最新バージョン(v0.39.7)
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# nvmコマンド存在確認
$ command -v nvm

# Node.jsインストール(最新の LTSバージョン)
$ nvm install --lts

上記、最新の LTSバージョンのインストール($ nvm install --lts)ではなく、他のバージョンをインストールして使用したい場合は、下記コマンドに倣って適宜変更してください。

# 最新バージョンをインストール
$ nvm install node

# 指定バージョンをインストール
$ nvm install <version>

[3]インストールした Node.jsのバージョンを設定

[3.1].nvmrcファイルを使用する場合

# プロジェクトで使用する nodeバージョンを指定(touchコマンドで .nmvrcファイルを作成)
$ echo v18.16.0 >> .nvmrc

# プロジェクト配下の nodeバージョンを設定
$ nvm use

[3.2]コマンドのみで管理する場合

# プロジェクト配下の nodeバージョンを設定
$ nvm use v18.16.0

インストールされていないバージョンを指定しコマンドを実行してエラーにはなりません。
指定した Node.jsのバージョンが存在しない場合でも自動的にインストールされます。

しかし、プロジェクトにより特定のバージョンを使用しなければならない場合は、知らず内に異なるバージョンが設定されているので気を付けてください。

■ 最後に

これにより、プロジェクトごとに必要なバージョンの Node.jsを自由に選択できます。
開発者としては、これが非常に便利なツールとなります。

nvmを活用することで、効率的に異なるバージョンの Node.jsを試すことができ、新しい機能や改善点を見つけ出すのに役立ちます。
また、古いプロジェクトでも最新の Node.jsを安全にアップグレードすることが可能になります。

この記事を読んだ後、nvmを使ったバージョン管理の基本から始めてみてください。
それぞれのプロジェクトで最適な環境を構築し、より効率的な開発体験を追求しましょう。

□ おまけ

インストール可能な Node.jsのバージョンを表示

$ nvm ls-remote

---
# LTSのみ表示
$ nvm ls-remote --lts

インストール済みの Node.jsのバージョンを一覧表示

$ nvm list

デフォルト Node.jsのバージョンを設定

$ nvm alias defualt [version]

指定したバージョンの Node.jsをアンインストール

$ nvm uninstall [version]

現在使用中の Node.jsのバージョンを確認

$ nvm current

ディレクトリ内の Node.jsのバージョン切り替え

# .nvmrcファイルで設定したバージョンを適応する場合
プロジェクトのディレクトリ内で「$ nvm use」と打つと階層を上にたどって
.nvmrcファイルを見つけ出し、そのバージョンに切り替えてくれる。

$ cd <project dir>
$ nvm use

Found '/home/xxxxx/.nvmrc' with version <v20.14.0>
Now using node v20.14.0 (npm v10.7.0)

# .nvmrcファイルに記載されたバージョンがインストールされていない場合
以下のようなエラーメッセージが出力され、自動的にインストールされる

    N/A: version "16.3.0 -> N/A" is not yet installed.
    You need to run "nvm install 16.3.0" to install it before using it.
    
    Downloading and installing node v16.3.0...
    
    Now using node v16.3.0 (npm v7.15.1)


---
# 最新の LTSバージョンへ切り替え
$ nvm use --lts

# 最新バージョンへ切り替え
$ nvm use node

# 指定バージョンへ切り替え
$ nvm use [version]

以上。

comment 📝

タイトルとURLをコピーしました