かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

環境構築 macOS Big Sur : nodenv で node.js 環境をクリーンインストールしたメモ

Macが壊れたので新規環境に Node 入れてたのでログとして

環境

  • macOS Big Sur
  • Homebrew インストール済み
  • zsh

Homebrew のインストール

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

anyenv のインストール

nodenv は anyenv から使えるようなので anyenv をインストールする

$ brew install anyenv
# zsh にパスを通す
$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
# anyenv の初期化
$ anyenv init
# シェルを再起動
$ exec $SHELL -l

install manifest ディレクトリの初期化

シェル再起動後に install manifest ディレクトリが作成されないと警告がでるっぽい。
指示に従って anyenv install --init コマンドを実行すれば install manifest を格納する /Users/<user_name>/.config/anyenv/anyenv-install ディレクトリが作成される。install manifest はちょっとよく解ってない

ANYENV_DEFINITION_ROOT(/Users/<user_name>/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:
> anyenv install --init
# ディレクトリの作成を効かれたら y と答える
$ anyenv install --init
Manifest directory doesn't exist: /Users/<user_name>/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
…
# ディレクトリが作成されたら再度シェルを再起動
$ exec $SHELL -l

anyenv のバージョンが表示されればOK

$ anyenv -v
anyenv 1.1.2

nodenv を使って node.js をインストール

anyenv がインストールされたら自動的に nodenv コマンドが使えるようになっている

# インストールされている node.js のバージョンを表示
$ nodenv versions
Warning: no Node detected on the system

Node.js が何もインストールされてない場合は Warning: no Node detected on the system と表示される

command not found: nodenv になる場合

nodenv のインストールが必要

$ anyenv install nodenv
/var/folders/v2/jqr7_2zd4_b5p498blctpf480000gn/T/nodenv.20210424110848.57101 ~/Documents/local
Cloning https://github.com/nodenv/nodenv.git master to nodenv...
Cloning into 'nodenv'...
…
Install nodenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.

$ exec $SHELL -l # シェルの再起動
$ nodenv versions
* system (set by /Users/<user>/.anyenv/envs/nodenv/version)

インストールできる node.js のバージョンを確認

$ nodenv install -l14.15.4
14.15.5
14.16.0
15.0.0
15.0.1
15.1.0

nodenv で node.js のインストール

Node.js から安定版をインストールする。
今回は LTS が 14.16.0, 最新版が 15.12.0

$ nodenv install 14.16.0
$ nodenv install 15.12.0
# インストールできてるか確認
$ nodenv versions
  14.16.0 (set by /Users/<user>/.anyenv/envs/nodenv/version)
  15.12.0

インストールしただけでは今のターミナルには反映されないのでシェルを再起動する

$ exec $SHELL -l

グローバルで使用する node.js を指定

指定しないと node コマンドが無いよと言われる。

$ nodenv global 14.16.0
# global 設定をされているかの確認
$ nodenv versions
* 14.16.0 (set by /Users/<user>/.anyenv/envs/nodenv/version)
  15.12.0

ローカルのバージョンを設定する方法

anyenv はディレクトリ単位でバージョンを指定できる。便利!!

$ cd example
$ nodenv local 15.12.0
$ nodenv versions
  14.16.0
* 15.12.0 (set by /Users/<user>/Documents/example/.node-version)

ディレクトリ内に .node-version ファイルが作成され、このディレクトリ内では node.js のバージョンを指定したものに固定できる。

yarn のインストール

global へのインストールで少しハマったのでメモ

$ npm install -g yarn
> yarn@1.22.10 preinstall /Users/<user>/.anyenv/envs/nodenv/versions/14.16.0/lib/node_modules/yarn
…
+ yarn@1.22.10
added 1 package in 0.65s
$ yarn --version
zsh: correct 'yarn' to 'tar' [nyae]?

インストールできたっぽいのに yarn コマンドが使えない…

global な npm へのパスが通ってないことが原因っぽい

nodenv rehash で global にある npm へのパスを通す必要があった

$ nodenv rehash
#  念の為改めてインストール
$ npm install -g yarn 
…
+ yarn@1.22.10
added 1 package in 0.65s
$ yarn --version
1.22.10

₍ ᐢ. ̫ .ᐢ ₎ yattane!

nodenv のアップデート

所管

環境設定何年かぶりにやると絶対忘れてる。Mac のターミナルのデフォルトが zsh になって久々の環境設定でした。zsh のシェルの再起動こんなに面倒なコマンドだったっけ… 🤔
ずっと nodebrew でしたがこれを気に anyenv にしてみましたが同じ感じで使えてるし、ディレクトリごとにバージョン固定できてめちゃめちゃ便利ですね〜!

nvm -> nodebrew -> nodenv ずいぶん遠くに来たものだ…


[参考]

仕事忙しいストレスでアイカツ! DVD まとめてポチってしまった。ストレス性買い物やりがち