⚡
【Mac】Homebrew、Volta、corepackでNode.jsとnpmとyarnを管理する
はじめに
asdfからvoltaに切り替えたのでその時の備忘録です。
切り替えた理由としては、asdfはwhich node
をasdf which node
のように書かないといけなくて少し億劫だった…みたいなのはありますが、一番はVoltaを使ってみたかったからです。
開発環境
- M1Mac
- Venture
- Node16系とyarn1系を使いたい
asdfのアンインストール
公式が詳しく書いてくれています。
Voltaのインストール
公式はcurl
コマンドで入れるようになっていますが、Homebrew経由で入れます。
※Homebrewが入っていない場合はこちら。
- Voltaをインストール
$ brew install volta
- 確認
$ volta -v
1.1.1 // バージョンが出れば成功
Node.jsのインストール
- Node.jsをインストール
// バージョン指定
$ volta install node@16.19.1
// メジャーバージョンのみ指定(以下はvoltaが良さげなやつを勝手に入れてくれる)
$ volta install node@16
// 最新版のLTSをインストール
$ volta install node
- 確認
$ node -v
v16.20.0 // バージョンが出れば成功
※パスが通っていない場合
cat ~/.zshrc
で.zshrcに以下が登録されているか確認、なければ追加
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"
corepackのインストール
corepackに関しては以下の記事が詳しく書かれています。
- corepackをインストール
$ volta install corepack
success: installed corepack@0.17.2 with executables: corepack, pnpm, pnpx, yarn, yarnpkg
- corepackを有効にする
$ corepack enable
- npmをcorepackの管理下にする
(corepackはデフォルトだとyarnとnpmしか管理していないのでオプトインが必要)
corepack enable npm
- 確認
$ npm -v
8.19.4
$ yarn -v
1.22.19
※yarnのバージョンが確認できない場合
現時点でcorepackはyarnを管理しておらずvoltaの管理になるので、インストールディレクトリを明示的に指定して、corepackはvoltaのyarn shimsを上書きする。
corepack enable --install-directory ~/.volta/bin
使い方
package.json
にpackageManager
を記載する。
package.json
{
"packageManager": "npm@8.19.4"
}
余談
yarnの1系を使いつつcorepackで他のバージョンを制御する、というのはできないらしいです。
Discussion