Yarnのクラシック版とBerry(v2以降)の違いと注意点

JavaScriptパッケージマネージャ「Yarn」には、大きく分けて「クラシック版(v1)」と「Berry(v2以降)」があります。特にYarn v1からv2以降に移行する場合は、多くの仕様変更があり、注意が必要です。本記事では、両者の主な違いや導入時の注意点を解説します。
目次
Yarn Classic(v1)の特徴
Yarnのクラシック版(v1系)は、npmよりも高速かつ安定したパッケージ管理を目指して登場しました。
主な特徴は以下の通りです:
node_modules
フォルダを使用.yarnrc
による設定- ワークスペース機能のサポート
yarn.lock
による依存関係のロック
導入方法:
npm install -g yarn
またはプロジェクトディレクトリで:
yarn init
Yarn Berry(v2以降)の特徴
Yarn v2以降は「Berry」とも呼ばれ、根本的なアーキテクチャの見直しが行われています。
大きな変更点:
node_modules
を使用しない(Plug’n’Play=PnP がデフォルト)- 設定ファイルが
.yarnrc.yml
に変更 - Yarn自身もリポジトリ内で管理される(Zero-Install推奨)
- プラグインシステムの導入
- より高速な依存解決
初期化コマンド(クラシック→Berryへ移行):
yarn set version berry
その後、.yarn/releases/yarn-berry.cjs
や .yarnrc.yml
が生成されます。
両者の違いの比較表
項目 | Yarn Classic (v1) | Yarn Berry (v2〜) |
---|---|---|
node_modules | 使用する | 使用しない(PnP) |
設定ファイル | .yarnrc | .yarnrc.yml |
Yarn本体の管理 | グローバル | プロジェクト内 |
プラグイン機構 | なし | あり |
キャッシュ | グローバル | プロジェクト内 .yarn/cache/ |
注意点と落とし穴
1. node_modules
前提のツールが動かないことがある
Yarn BerryのPnPでは node_modules
が存在しないため、ツールによってはパス解決に失敗することがあります。
対策:
必要であれば nodeLinker: node-modules
を .yarnrc.yml
に追加することで対応可能。
nodeLinker: node-modules
2. プラグインの導入が必要なケースがある
Yarn Berryでは多くの機能がプラグインに分割されています。たとえば workspace-tools
や interactive-tools
などを必要に応じて追加する必要があります。
yarn plugin import workspace-tools
3. CI環境ではZero-Install構成が推奨される
Yarn v2以降では .yarn/cache/
に全依存パッケージを保管する方式(Zero-Install)が推奨され、yarn install
をCIで実行しなくても済む構成が可能になります。
4. .pnp.js
の仕組みに慣れる必要がある
PnPではモジュール解決のロジックが .pnp.cjs
に記録され、Node.js にパッチを当てて解決します。初見では戸惑うかもしれませんが、公式ドキュメントが充実しています。
まとめ:Yarnのバージョンはプロジェクトの性質で選ぼう
Yarn v1は依然として多くの現場で使われており、互換性を重視するならクラシック版が無難です。一方、パフォーマンスやCI/CDの最適化を狙うならYarn Berryが強力な選択肢になります。
結論として:
- 既存のプロジェクトやレガシー環境:Yarn v1(Classic)を継続
- モノレポ・CI高速化・最新構成:Yarn Berry(v2以降)を選択
それぞれの特性を理解し、目的に応じて適切なバージョンを選びましょう。

Contact
ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい
ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。
デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。