😩

Node.jsバージョンアップの際に、zshでnコマンドが見つからなかった時の話

2020/12/07に公開

2020 年 12 月時点で zenn の Node.js 推奨バージョンが 13,14 とのことだったので、私の Node.js のバージョンを確認しました。

$ node -v
v12.16.3

バージョン 12 であったため、npm で n をインストールし、

$ npm install -g n

Node.js の安定版を確認しようとしたところ。

$ n --stable
zsh: command not found: n

インストールした n が見つからない。。。。
色々調べたところ、zsh の設定ファイルに n の PATH を追記していないことが判明しました。
下記の記事を参考に、PATH を追記しようとしましたが、

「そもそも n の PATH って何だ?」 というところでつまずきました。。。
そういえば n をインストールした際に PATH っぽいものが表示されているかもと思い、コマンドの履歴を確認したところ...

$ npm install -g n
....
/Users/**_/.npm-global/bin/n -> /Users/_**/.npm-global/lib/node_modules/n/bin/n

↑ を発見!!!こちらをもとに設定ファイルに PATH を設定します。

.zshrc
export PATH=$HOME/.npm-global/lib/node_modules/n/bin:$PATH

PATH を設定し、n が使えるか確認します。

$ n ls
find: /usr/local/n/vesions: No such file or directory

とりあえず、n が使えるようになりました。
安定版をインストールします。

$ n stabe
....
mkdir: /usr/local/n/vesions/node/14.15.1: Permission denied
  Error: sudo required (or change ownership, or define N_PREFIX)

安定版をインストールしようとしたら sudo を求められたので、sudo をつけて安定版をインストールします。

sudo n stable

インストール後に Node.js のバージョンを確認します。

node -v
v14.15.1

初めて zsh の設定ファイルに PATH を追加しましたが、無事 Node.js のバージョンアップができました!!!

Discussion