Apple Silicon版macOSにHomebrewとnodenvを入れてcreate-react-appするまで

Homebrewのインストール

まず Homebrew公式ページ を参考にHomebrewを入れる

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Apple Silicon版Macbook発売当初はインストールスクリプトが新環境に対応しておらず、もう少し手順を踏まなければいけなかった。対応パッチ作成してくれた方に感謝

試しにTerminalの別タブを開いてzshを起動しなおしてみると insecure directories と警告が出る

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

compauditinsecure directories を見れるとのこと。Homebrewのインストールで増えたディレクトリがおかしい

% compaudit
There are insecure directories:
/opt/homebrew/share/zsh/site-functions
/opt/homebrew/share/zsh

% ls -ld /opt/homebrew/share/zsh/site-functions
drwxrwxr-x  3 xxx  admin  96  4 22 22:43 /opt/homebrew/share/zsh/site-functions
% ls -ld /opt/homebrew/share/zsh
drwxrwxr-x  3 xxx  admin  96  4 22 22:39 /opt/homebrew/share/zsh

具体的にどう直せという指示がないので困ったが 755 に狭めればいいらしい

% chmod 755 /opt/homebrew/share/zsh/site-functions
% chmod 755 /opt/homebrew/share/zsh
% compaudit
# 出力なし

Homebrewまわりもチェックして問題なし

% brew --version                           
Homebrew 3.1.3
Homebrew/homebrew-core (git revision 0f7e4ea6ca; last commit 2021-04-22)

% brew doctor
Your system is ready to brew.

nodenvのインストール

次にHomebrew経由でnodenvを入れる nodenvのREADME を読んでコマンドを実行

brew install nodenv
echo 'eval "$(nodenv init -)"' >> ~/.zshrc
eval "$(nodenv init -)"

実行環境をチェックするスクリプトも載っているので実行

# スクリプト内のtypeコマンドにbash向けのオプションが付いているので、パイプで渡す先はbashのままで
% curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
Checking for `nodenv' in PATH: /opt/homebrew/bin/nodenv
Checking for nodenv shims in PATH: OK
Checking `nodenv install' support: /opt/homebrew/bin/nodenv-install (node-build 4.9.38)
Counting installed Node versions: 0 versions
Auditing installed plugins: OK

Node.js 16.0.0が出た直後だったのでさっそく入れてglobalにセット

nodenv install -l # インストールできるバージョンを表示
nodenv install 16.0.0
nodenv global 16.0.0

入ったことを確認

% nodenv versions
* 16.0.0 (set by /Users/xxx/.nodenv/version)
% node --version
v16.0.0
% npm --version
7.10.0

create-react-app

最後にReactアプリのベースを作って終わり!

# 適当なディレクトリに移動してから
npx create-react-app my-app --template typescript