Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9328

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

$
0
0

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 folderssudo 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コマンドでスマートにバージョン切り替えをしてみたいという方は、ぜひ参考にしてみてください。


Viewing all articles
Browse latest Browse all 9328

Trending Articles