LoginSignup
19
14

More than 3 years have passed since last update.

n (Node.js管理) のインストール手順

Last updated at Posted at 2021-04-05

n

nvmやnodebrewなどと同じく、Node.jsのバージョン管理ツールの1つです。

対象読者

・MacOSユーザー
※nはWindowsをサポートしていません。

前提

Homebrewがインストール済み

インストール済みの場合は、バージョンが表示されます。

$ brew -v
Homebrew 3.0.4

バージョンが表示されなかった方は、インストールを行います。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストール

brewコマンドを使って、nをインストールします。

brew install n

バージョンの確認

コマンドを実行しバージョンが表示されれば、正常にインストールされています。

$ n -V
7.0.0

Node.js LTS版のインストール

試しにNode.jsのLTS(最新安定版)をインストールしてみます。

準備

nはデフォルトで/usr/local以下に、n/versionsディレクトを作成し、そこでバージョンを管理を行います。

/usr/local以下はroot権限のディレクトリに該当し、通常ユーザーではアクセスできないディレクトリです。

nコマンドでNode.jsをインストールする前に、以下のいずれかの対応が必要です。

  1. sudo コマンド で実行
  2. 環境変数 N_PREFIXに、ホームディレクトリなどをインストール先を指定
  3. /usr/local/n を作成し、ユーザーの読み取り権限を付与

今回は、nコマンド実行時に毎回sudoを叩きたくない&環境変数を増やしたくないので、
3./usr/local/n を作成し、ユーザーの読み取り権限を付与を行います。

# make cache folder (if missing) and take ownership
$ sudo mkdir -p /usr/local/n
$ sudo chown -R $(whoami) /usr/local/n

README.mdから引用

LTSのバージョン確認

インストールコマンドを叩く前に、LTSのバージョンを確認します。

$ n --lts
14.16.0

インストール

nコマンドの引数にltsを渡して実行します。

$ n lts

正常にインストールされると以下のような表示となります。

  installing : node-v14.16.0
       mkdir : /usr/local/n/versions/node/14.16.0
       fetch : https://nodejs.org/dist/v14.16.0/node-v14.16.0-darwin-x64.tar.xz
   installed : v14.16.0 (with npm 6.14.11)

失敗した場合

権限が無いと以下の通り怒られるので、権限付与のコマンドを実行して再実行するか、管理者権限で実行してください。

  installing : node-v14.16.0
       mkdir : /usr/local/n/versions/node/14.16.0
mkdir: /usr/local/n/versions/node/14.16.0: Permission denied

  Error: sudo required (or change ownership, or define N_PREFIX)

Node.js 最新版のインストール

※LTS版ではなく、最新版を使いたい場合はこちら

最新バージョンの確認

n ls-remote latest

インストール

引数にlatestもしくは、current を渡して実行します。

$ n latest
## もしくは
$ n current

Node.js バージョン指定してインストール

インストール可能なバージョンを確認

# インストール可能なバージョンを表示(最新から20件)
$ n lsr 

# 全てのインストール可能なバージョンを表示
$ n --all lsr

インストール

一覧に表示された中から、インストールしたいバージョンを引数で指定します。

$ n 15.10.0

バージョンの切り替え

すでにインストールしている中から、自由に切り替えることができます。

$ sudo n

nコマンドを実行するとインストール済みのバージョン一覧が表示されます。
上下キーでバージョンを選択し、Returnキーで切り替えることが可能です。

正常に切り替わると以下のように表示されます。

  installed : v14.16.0 (with npm 6.14.11)

失敗した場合

以下のようにズラズラ〜っとPermission deniedが出たあとに、
installedが表示された場合は正常に切り替わっていません。

sudoでnコマンドを実行し直してください。

cp: /usr/local/lib/node_modules/npm/lib/uninstall.js: Permission denied
cp: /usr/local/lib/node_modules/npm/.mailmap: Permission denied
cp: /usr/local/lib/node_modules/npm/.travis.yml: Permission denied
cp: /usr/local/lib/node_modules/npm/tap-snapshots/test-tap-fund.js-TAP.test.js: Permission denied
cp: /usr/local/lib/node_modules/npm/tap-snapshots/test-tap-repo.js-TAP.test.js: Permission denied
cp: /usr/local/lib/node_modules/npm/.licensee.json: Permission denied
  installed : v14.16.0 (with npm 6.14.11)

(おまけ) nコマンドでsudoしたくない人向け

以下のコマンドでユーザーに権限を付与することでsudoが不要になります。

# take ownership of node install destination folders
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

README.mdから引用

感想

nの一文字だけでスマートにNode.jsのバージョンを切り替える事がメリットだと感じました。

ただし、切り替え速度に関して、自環境ではバージョン切り替えが完了するまで、8~10秒くらいかかりました。※環境に左右されると思います。

バージョン切替時の処理内容が、/usr/local/lib/node_modules/npm以下を全削除したあと、
指定のバージョンのNode.jsを入れ直しているため、そのぶん時間がかかってると思われます。

少し切替速度は気になりましたが、nコマンドでスマートにバージョン切り替えをしてみたいという方は、ぜひ参考にしてみてください。

19
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
14