Node.js のバージョン 14.19.0 および 16.9.0 から corepack が同梱されるようになりました。
yarn も今まで
npm -g install yarn
などとしてインストールしていましたが、corepack 経由でインストール可能になります。
Node.js のインストール
scoop や winget 等からインストールしても良いですし、Windows の場合インストーラーがあるので公式サイトからダウンロードしてきてインストールしても良いです。
管理者権限で Powershell を立ち上げ
Node.js が Program Files にインストールされている為、Program Files 内の変更が有効になっている場合
corepack が権限の関係で動作しないので管理者権限で Powershell を立ち上げます。
corepack で yarn を有効化
npm 経由でインストールした yarn を削除
古いものがすでにインストールされている場合は競合しないように削除しておきます。
npm -g uninstall yarn
cd ~
rm ~/.yarn
rm ~/.yarnrc.yml
rm ~/.yarnrc
yarn を有効有効にする場合
corepack enable yarn
yarn を無効にする場合
corepack disable yarn
確認
yarn
と実行した後
yarn --version
> 4.3.1
でバージョンが表示されればインストール完了です。
既存プロジェクトで yarn を有効にする方法
すでに package.json 等がある場合は yarn コマンドを実行してもエラーになるので、package.json ファイルを一旦プロジェクト外に退避したあとに
yarn init
を実行します。
すると package.json に下記のように記載されるので、下記の記述を先ほど退避した package.json に追記します。
{
"packageManager": "[email protected]"
}
それで
yarn install
と実行すれば yarn への移行完了です。
Zero-installs を無効にする
yarn 2(Berry)以降のバージョンから Zero-installs という機能が導入されました。
依存関係がプロジェクトのリポジトリにキャッシュされる為、効率化がはかれる反面プロジェクト自体のサイズはある程度取られることを覚悟しなくてはなりません。
そのため不要であれば無効にするようにします。
公式サイトを参考に Zero-installs を無効にしていきます。
https://yarnpkg.com/features/caching
https://yarnpkg.com/configuration/yarnrc
.yarnrc.yml ファイルを作成
プロジェクトルートに「.yarnrc.yml」というファイルを作成して下記のようにします。
.yarnrc.yml
nodeLinker: node-modules
ファイル作成後、
yarn install
を実行します。
.gitignore に記述を追加
yarn の実行に関わるファイル以外を git に含めないようにします。
.gitignore
# yarn (not using Zero-installs)
.yarn/*
!.yarn/patches
!.yarn/releases
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
.pnp.*
yarn cjs ファイルのコミット
yarn.lock ファイルがあるディレクトリで
yarn set version stable
と実行すると.yarn/releases/yarn-4.3.1.cjs のようなファイルが生成されるかと思います。
.yarnrc.yml には
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.3.1.cjs
のように yarnPath が指定されますので、それを含めてコミットします。
これで実行環境関係なく、プロジェクトの yarn が実行されるようになるかと思います。