M1 MacにNode.jsをインストールする
以前は nodebrew (or NVM for Windows) を使用していましたが,xenv 系のパッケージで揃えるとわかりやすいかな~と思い,nodenv にしました.
他の言語と異なり,大々的に M1 プロセッサに対応したよー!という発表はなぜかありませんが,v15.3.x で対応したようです.
参考:Apple Silicon Plan - Issue #886 | GitHub
nodenv インストール
Node.js バージョン管理に使用します.Homebrew は事前に M1 プロセッサ対応のものを入れています.
terminal
$ brew install nodenv
実行すると node-build も自動的に入ります.インストールが終了したら環境変数を追加します.
./zshrc
eval "$(nodenv init -)"
また,nodenv が正しくインストールされたかを確認するために追加のパッケージをインストールします.
terminal
$ curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
Node.js インストール
xenv 系お決まりのバージョン確認からのインストールです.
Python バージョンがデフォルトのまま実行したら Python がないと言われたので,pyenv でインストールしていた M1 対応済みバージョンを有効にしておきます.
pyenv の導入は以下の記事で書いています.
terminal
$ pyenv global 3.9.1
$ nodenv install -l
$ nodenv install 15.9.0
….
Runcat のねこが爆走しているのにインストールが終わりません.通常であれば数秒で終わるのでどう考えてもおかしい.
仕方ないので Rosetta2 でインストールします.一行目でアーキテクチャを確認できます.
terminal
$ uname -m
x86_64
$ nodenv install 15.9.0
Rosetta2 であってもインストール先は $HOME/.nodenv/versions
以下です.Rosetta2 から Universal 環境に戻って以下のコマンドを実行してみると,インストールされていることがわかります.
terminal
$ nodenv versions
15.9.0
これで Node.js を使用するディレクトリでバージョンを切り替えて使うことができるようになりました.
terminal
$ nodenv local 15.9.0
$ node -v
v15.9.0
$ npm -v
7.5.3
パッケージ管理には Yarn を使っているので追加します.
terminal
$ npm i -g yarn
$ yarn -v
1.22.10
最後に,正しく動作するか確認してみます.既存プロジェクトのディレクトリで package.json 通りに Nuxt.js 環境を作ります.
terminal
$ yarn install
$ yarn dev
✔ Client
Compiled successfully in 10.32s
✔ Server
Compiled successfully in 9.64s
No issues found.
問題なく実行できました.ローカルホストも動いています.
インストールだけなぜか詰まりましたが,その他は Universal 環境で大丈夫そうです.