4
Help us understand the problem. What are the problem?

posted at

updated at

Organization

M1 MacにnvmでNode.jsをインストールする

最近M1チップ搭載のMacBook Airを購入しました。
M1以外のMacも同じ方法でインストールできますが、購入記念(?)で書き残しておきます。

紹介すること

  • M1 Macでnvmを利用するときの注意点
  • nvmのインストール
  • nvmを利用したNode.jsのインストール

検証環境

  • macOS Monterey 12.3.1
  • MacBook Air(M1, 2020)

nvmとは

Node.jsのバージョン管理ツールです。
https://github.com/nvm-sh/nvm#about

なぜnvmを使うの?

  • Node.jsをバージョン管理したいから
  • EC2のチュートリアルに紹介されているので信頼性が高そうだから

Node.jsのバージョン管理ツールではnodebrewも有名ですね。こちらもM1 Macに対応しているようです。
【M1 Mac】nodebrew v1.1.0が公式にAppleSiliconに対応したのでNode v16.0.0をインストール

M1 Macはここに注意

インストールするNode.jsのバージョンに注意が必要です。M1 Macでは16.0.0以降のバージョンが勧められています。
https://github.com/nvm-sh/nvm#important-notes

Note For Macs with the M1 chip, node started providing arm64 arch darwin packages since v16.0.0. For earlier versions, there were only darwin_x64 packages available but no darwin_arm64. If you are facing issues installing node using nvm, you may want to update to v16 or later.

ライブラリや環境の都合上あえてバージョンを下げて利用することもあると思います。必要なバージョンの対応可否はその都度公式ドキュメントを確認してください。

今回はLTSバージョン(16.0.0以降)をインストールするので問題ありませんでした。
https://github.com/nodejs/Release#release-schedule

nvmのインストール

インストール実行

公式ドキュメントに従ってインストールします。
https://github.com/nvm-sh/nvm#install--update-script

% curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

ターミナルのリスタート用コマンドを実行します。
https://github.com/nvm-sh/nvm#troubleshooting-on-macos

You might need to restart your terminal instance or run . ~/.nvm/nvm.sh. Restarting your terminal/opening a new tab/window, or running the source command will load the command and the new configuration.

% . ~/.nvm/nvm.sh

nvmのバージョンが確認できればインストール完了です!

% nvm -v
0.39.1

Homebrewではインストールできないの?

Homebrew経由でインストールすることも可能ですが、公式ドキュメントによると現在はサポート対象外のようです。
https://github.com/nvm-sh/nvm#important-notes

Homebrew installation is not supported. If you have issues with homebrew-installed nvm, please brew uninstall it, and install it using the instructions below, before filing an issue.

また、nvmに限らずHomebrewでパッケージをインストールした場合は一部の初期設定が実行されないようです。試しにbrew install nvmを実行したところ、curlコマンドでは実行される処理が行われていませんでした。

  • ~/.zshrcにパスの設定に必要なexport文が追記されない
  • ~/.nvmが生成されない

なお、これらの作業については手動で対応可能です。Homebrewを使用した場合はインストール完了時に説明文が出力されます。

Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.

You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

Add the following to ~/.zshrc or your desired shell
configuration file:

  export NVM_DIR="$HOME/.nvm"
  [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

Node.jsのインストール

LTSバージョンをインストールします。
https://github.com/nvm-sh/nvm#long-term-support

 % nvm install --lts

Node.jsのバージョンが確認できればインストール完了です!

% node -v
v16.14.2

合わせてnpmも使用できるようになりました。

% npm -v
8.5.0

まとめ

最近はM1対応のツールが増えて嬉しいです。M1の環境構築についての情報も増えましたが、現在進行形でツールのアップデートも進んでいるので情報の正確性はその都度判断が必要ですね。

快適なM1 Macライフをお送りください。

採用PR

弊社で一緒に働く仲間を募集しています。
全てのオタクを幸せにしたい方、是非ご覧ください!

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
4
Help us understand the problem. What are the problem?