M1 MacへのNodejs 14.xのインストール
この記事では、M1 Mac上のnvmでx86_64版のNodejs 14をインストールする方法を紹介します。
最近、M1 Mac miniを購入しましたので、デスクトップ開発環境を移行しました。移行前は、2015年のMacBook Proを利用していたので、とても快適になりました。
一方、まだまだARM Nativeで動かず、Rosetta2に頼らないといけないソフトウェア等もありました。 nvmでインストールするNodejsもその一つです。nvmのnodejs 15未満はARMに対応していません。 本ブログを構築しているGatsbyもNodejs 14が推奨になっていますので、なんとか稼動するx86_64版のNodejs 14をインストールする必要があります。
以降では、Nodejs 15以降をarm64版で、Nodejs 15未満をx86_64版でインストールしていきます。
nvmのインストール
nvmは、Node.js の複数バージョンのインストール・切り替えを管理するツールです(Pythonでいうpyenvのようなもの)。 nvmをインストール済の場合は、このセクションを飛ばして問題ありません。
基本的にnvm公式のインストールに従います。
以下コマンドでnvmをインストールします。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
以下を~/.zshenvに追記してnvmをロードします。
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Nodejsの安定版のインストール
まずは、Nodejsの安定版(現時点では、v16.3.0)を以下コマンドでインストールします。
nvm install v16.3.0
nvm use v16.3.0
以下コマンドで安定バージョンかつARMで動作していることを確認します。
node --version
# v16.3.0
node -p process.arch
# arm64
x86_64版のnodejs 14.xのインストール
以下コマンドにて、x86_64でzshのプロセスを起動します。
arch -x86_64 /bin/zsh
x86_64で起動したzsh上でnodejs 14をインストールします。 今回はv14.17.0をインストールします。
nvm install v14.17.0
以下コマンドでx86_64版のzshプロセスを終了します。
exit
以下コマンドでNodejsをv14.17.0に切り替えてx86_64版で動作していることを確認します。
nvm use v14.17.0
# Now using node v14.17.0 (npm v6.14.13)
node --version
# v14.17.0
node -p process.arch
# x64
もちろん、以下のようにARMに対応しているv16.3.0に切り替えるとarm64版で動作していることが確認できます。
nvm use v16.3.0
# Now using node v16.3.0 (npm v6.14.13)
node --version
# v16.3.0
node -p process.arch
# arm64
終わりに
この記事では、nvmでNodejs 15以降はarm64版、Nodejs 15未満はx86_64版をインストールする方法を紹介しました。 これで、arm64、x86_64の切替を意識せずにNodejsを利用できるようになりました。満足です。
早くRosetta2を使わずに、ARM Nativeですべてが動作するようになると嬉しいですね。