Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9138

Yet Another な Apple Silicon (M1) + Homebrew のベストプラクティス

$
0
0

ベストプラクティス多すぎ?

参考にさせていただきました。

はじめに

  • 基本的にはフロントエンド開発環境( Node.js や Yarn、Git、GnuPG など)の構築を目指します
  • ターミナル.app のRosetta を使用して開くオフにして、arm64 環境をデフォルトとして利用します
  • zsh シェルを使います

エイリアスの作成

x64もしくは a64でアーキテクチャを行ったり来たりできるように ~/.zshrcでエイリアスを設定します。

.zshrc
if(($+commands[arch] ));then
    alias x64='exec arch -arch x86_64 "$SHELL"'alias a64='exec arch -arch arm64e "$SHELL"'fi

Homebrew arm64 のインストール

arm64環境でターミナルが開かれていることを確認し、Homebrew のインストーラを起動します。

zsh
% arch
arm64

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

インストーラが M1 Mac に対応したため、自動的に /opt/homebrew/以下にインストールされます。

パッケージのインストール(一例)

% which brew
/opt/homebrew/bin/brew

% brew install-v node yarn git gnupg

(2021/01/02) 現在、上記4つのパッケージ(とそれが依存するパッケージ)はすべてバイナリでインストールすることが可能です。

ただし、NodeJSnode@15のみ対応済みです。node@14node@12はビルドできません。

Homebrew x86_64 のインストール

ターミナルを x64へ切り替えます。

zsh
% a64
% uname-m
x86_64

インストーラは arm64版と同じです。従前通り /usr/local/以下へインストールされます。

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

せっかくなので、こちらでは LTS 版の node@14 をインストールします。

zsh
% which brew
/usr/local/bin/brew

% brew install-v node@14 yarn

環境ごとに PATH などのシェル変数を切り換える

arm64 では /opt/homebrew/binを優先し、x64 では node@14 のために /usr/local/opt/node@14を優先し、LDFLAGSCPPFLAGSの2つのシェル変数も設定します。

.zshrc
if[[$(uname-m)="x86_64"]];then
  typeset-U path PATH
  path=($HOME/bin(N-/)
    /usr/local/opt/node\@14/bin(N-/)
    /usr/local/bin(N-/)
    /usr/local/sbin(N-/)$path)export LDFLAGS="-L/usr/local/opt/node@14/lib"export CPPFLAGS="-I/usr/local/opt/node@14/include"else
  typeset-U path PATH
  path=($HOME/bin(N-/)
    /opt/homebrew/bin(N-/)
    /opt/homebrew/sbin(N-/)
    /usr/local/bin(N-/)
    /usr/local/sbin(N-/)$path)export LDFLAGS=""export CPPFLAGS=""fi

いまのところ、うまく行っている感じです。

スクリーンショット 2021-01-02 17.05.33.png

スクリーンショット 2021-01-02 17.06.05.png


Viewing all articles
Browse latest Browse all 9138

Trending Articles