yarn
yarnでパッケージ管理を行う場合、package.json
とyarn.lock
が必要になります。
yarnにはyarn v1系
とyarn berry(V2~V4)系
の2種類があります。
大きな違いとして以下があります。
V1系
よりberry系
の方がパッケージインストールの速度が速いV1系
よりberry系
の方がインストールしたパッケージのサイズが小さいberry系
は依存パッケージをnode_modules
ディレクトリ配下に実体をダウンロードせずpnp.cjs
、pnp.locker.mjs
というファイルで管理する仕様(※)
(※)但し.yarnrc.ymlの設定で従来通りnode_modules
ディレクトリ配下に実体をダウンロードすることも可能です。
参考
公式サイト
公式サイト(CLI)
公式サイト(Configuration)
yarn v1系(github)
yarn berry系(github)
yarnをv1からv2(Berry)へ移行する
プロジェクトを壊さず安全に npm から yarn4 へ移行する
環境変数名について
berry系のyarn
では、環境変数名にYARN_***
を使用するのは厳禁です。
YARN_***
を使用するとyarn install
等で以下のようなエラーが発生します。
Unrecognized or legacy configuration settings found...
バージョン確認
yarn -v
nodejs初期化
yarn init
packageインストール
カレントディレクトリにpackage.json
(あればpackage-lock.json
)が存在する状態で、
以下コマンドを入力(どちらでも可能)
yarn install
yarn
packageクリーンインストール
カレントディレクトリにpackage.json
(あればpackage-lock.json
)が存在する状態で、
以下コマンドを入力
- berry
- v1
yarn install --immutable --immutable-cache --check-cache
rm -rf node_modules && yarn install --frozen-lockfile
packageインストールリスト
- berry
- v1
yarn info --recursive --dependents
npm yarn list
package個別インストール
インストール時にpackage.json
のdependencies
ordevDependencies
にパッケージ名とバージョンが記載されます。
(yarn.lock
も更新されます。)
"dependencies": {
<パッケージ名>: <バージョン>,
},
"devDependencies": {
<パッケージ名>: <バージョン>,
}
^付き
- main
- dev
yarn add <パッケージ名>
yarn add express
インストール後(パッケージ名の後ろにバージョンを指定しない場合は最新のバージョンを取得します)
"dependencies": {
"express": "^4.17.1",
},
yarn add --dev <パッケージ名>
yarn add --dev prettier
インストール後(パッケージ名の後ろにバージョンを指定しない場合は最新のバージョンを取得します)
"devDependencies": {
"prettier": "^3.3.3",
},
^無し
バージョン指定
- main
- dev
yarn add <パッケージ名>@<version>
yarn add express@4.17.1
インストール後
"dependencies": {
"express": "4.17.1",
},
yarn add --dev <パッケージ名>@<version>
yarn add --dev prettier@3.3.3
インストール後
"devDependencies": {
"prettier": "3.3.3",
},
packageアンインストール
npmと異なりpackage.json
のdependencies
もしくはdevDependencies
も削除されます。
(yarn.lock
も更新されます。)
yarn remove <パッケージ名>
yarn remove express
yarn remove prettier
corepack use
コマンド
corepack use
コマンドでpackage.json
のpackageManagerフィールド
に利用するパッケージマネージャーを指定します。
以下では利用するパッケージマネージャーにyarn
を指定するコマンドを紹介します。
利用するパッケージマネージャーにyarn
を指定した場合、
yarn
以外のパッケージマネージャー(npm
, pnpm
)を使用するとエラーとなります。
package.json
のpackageManagerフィールド
にyarn
を追加するコマンドは以下の通りです。
(SHA-512ハッシュを含むバージョンが追加されます)
corepack use yarn@{YARN_VER}
コマンド例
yarn
の4.5.1
をpackage.json
のpackageManagerフィールド
に追加
corepack use yarn@4.5.1
コマンド実行後の結果
...
"packageManager": "yarn@4.5.0+sha512.837566d24eec14ec0f5f1411adb544e892b3454255e61fdef8fd05f3429480102806bac7446bc9daff3896b01ae4b62d00096c7e989f1596f2af10b927532f39"
パッケージを最新にupgrade
- berry
- v1
このコマンドは対話的に全パッケージのverを最新版に更新します。
yarn upgrade-interactive
このコマンドは全パッケージのverを最新版に更新します。
npm upgrade --latest