corepackを使ってWindowsでyarnをインストールする

corepackを使ってWindowsでyarnをインストールする

Node.js のバージョン 14.19.0 および 16.9.0 から corepack が同梱されるようになりました。

yarn も今まで

npm -g install yarn

などとしてインストールしていましたが、corepack 経由でインストール可能になります。

Node.js のインストール

https://nodejs.org/

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 が実行されるようになるかと思います。