プロジェクトごとのバージョン切り替えで消耗していませんか?macOS/Linuxユーザーに最適な、設定不要で直感的に使える「n」の導入手順と、ハマりがちな権限エラーの回避策をまとめました。
「特定のプロジェクトで古いNode.jsが必要になった」「最新のLTS(推奨版)を試したい」 Node.jsの開発において、バージョンの不一致は日常的な悩みです。
こうした問題を解決するのがバージョン管理ツールですが、多機能すぎて設定が複雑なものも少なくありません。そこで、macOSやLinuxユーザーに強くおすすめしたいのが、極限までシンプルに設計された**「n」**です。
Node.jsの管理ツールには、他にもnvm、fnm、voltaなどがありますが、「n」には他にはない明確な強みがあります。
UbuntuなどのLinux環境で、npmを使って「n」を導入する最もクリーンな手順を紹介します。
まず、ツール自体をインストールするための「種」となるNode.jsが必要です。
# システムのパッケージマネージャーからインストール
sudo apt update
sudo apt install -y nodejs npm
次に、npmを使用して「n」をグローバルにインストールします。
# nをインストール
sudo npm install -g n
「n」がインストールできれば、最初に入れたOS標準のNode.jsは不要になります。競合を避けるために削除しておくほうが良いです。
# OS標準のNode.js/npmを削除
sudo apt purge --autoremove -y nodejs npm
「n」の操作はとても簡単です。基本は「n」の後にバージョンを指定するだけです。
| 目的 | コマンド例 | 備考/詳細 |
|---|---|---|
| 特定のバージョンをインストール | n 24.12.0 | バージョン番号を直接指定 |
| LTS版(Long Term Support)をインストール | n lts | 最新のLTSインストール |
| 最新版(Newest official release)をインストール | n latest | 最新の公式リリースをインストールします。 |
単に n とだけ入力すると、ローカルに保存されているバージョンが一覧表示されます。
n
こんな感じでで表示されます。

また、キャッシュされているバージョンを一覧表示するには、n ls コマンドを使用します,。
n lts などを実行した際、書き込み権限エラー(Error: sudo required)が出ることがあります。これは /usr/local への書き込み権限がないためです。
Error: sudo required (or change ownership, or define N_PREFIX)
mkdir -p "$HOME/.n"
export N_PREFIX="$HOME/.n"
export PATH="$N_PREFIX/bin:$PATH"
source ~/.zshrc
source ~/.bashrc
これで sudo なしで自由自在にバージョンを管理できるようになります。
「今、公式にどのバージョンがリリースされているか」を確認するコマンドです。
| 目的 | コマンド例 | 備考/詳細 |
|---|---|---|
| 利用可能な最新のLTSバージョンを表示 | n ls-remote lts | 最新のLTS(Long Term Support)リリースをリストアップします 。 |
| 利用可能な最新の公式リリースを表示 | n ls-remote latest | 最新の公式リリース(Current)をリストアップします 。 |
| 特定のメジャーバージョンに一致するリモートバージョンを表示 | n lsr 10 | 指定したメジャーバージョン(例: 10.x.y)に一致するリモートバージョンをリストアップします 。 |
| ダウンロード可能なすべてのリモートバージョンを表示 | n --all lsr | ダウンロード可能なすべてのリモートバージョンをリスト表示します 。 |
「n」でインストールしたバージョンは、明示的に削除しない限りローカルにキャッシュされます。
| 目的 | コマンド例 | 備考/詳細 |
|---|---|---|
| 特定のキャッシュバージョンを削除する | n rm 0.9.4 v0.10.0 | キャッシュされている特定のバージョンを削除します。複数のバージョンを一度に指定して削除することも可能です,。 |
| 現在使用中のバージョン以外を全て削除する(キャッシュの整理) | n prune | 現在アクティブに使用しているバージョンを除き、ローカルにキャッシュされている全てのバージョンを削除します,。 |
Node.jsのバージョン管理ツール「n」は、簡単。シンプル。これが特徴です。node.js単体のバージョンアップ、切り替えは手間なので、シンプルイズベスト。「n」を使ってバージョン管理をするのは楽です。