Yarn キャッシュクリアのためのガイド(V1、Berry、CI/CD) yarn installあなたは実行している
その時、多くの人が __CAPGO_KEEP_0__ を検索し、最初に見つけたコマンドを貼り付けることが多い。
その場合、時々は機能する。時々は何も解決しない。 その理由は単純である: のキャッシュの動作は、実行中の のバージョンに依存し、 と
の間には大きな差がある。 yarn cache cleanほとんどのガイドはここで終わる。実際にはこれが始まりである。
重要なのはキャッシュのスコープであり、プロジェクトがローカルキャッシュまたは共有キャッシュを使用しているかどうか、そして実際の問題がキャッシュそのものであるかどうかである。
- CIとDockerでは、キャッシュ戦略が悪いと、古いパッケージアーカイブよりも多くの痛みを引き起こすことが多い。
- Yarn キャッシュをクリアするときと理由
- Yarn Classic v1 でキャッシュをクリアする方法
- Yarn Berry v2+ でキャッシュを管理する方法
- CI/CD と Docker のための Yarn キャッシュのベスト プラクティス
- トラブルシューティング: Yarn キャッシュの一般的なエラー
- Yarn キャッシュをクリアすることについてよくある質問
ビルドが壊れたら、Yarn キャッシュが原因かもしれません
よくあるパターンは次のようになります。パッケージをアップグレードし、最新の変更を取得し、再度インストールを実行します。コマンドは完了しますが、アプリは古い依存関係が存在しているように動作します。すると誰かがキャッシュをクリアすることを提案し、現在はその実際の解決策かただの迷信かどうか疑問に思うようになります。
実際の解決策かもしれません。ただの迷信かもしれません。
キャッシュの問題は、予測可能な方法で表現されます。ローカルパッケージが更新されない。CIが予想外のものを取得する。新しいブランチはメインブランチとは異なる動作をする。ロックファイルはすべて一致しているはずですが、実際には異なる動作をする。キャッシュのデバッグを実行している場合は、より体系的なビルドレビューと組み合わせることが役立ちます。例えば、このガイドを参照してください。 Capacitor CI/CD パイプライン内のビルドエラーを修正する.
実践的なルール: Yarn のキャッシュをクリアすることは診断ツールとしてではなく、メンテナンスの習慣として扱うべきです。
Yarn のキャッシュモデルが時間の経過とともに変更されたため、難しい部分があります。古いプロジェクトでは、キャッシュはグローバルに共有されます。新しいプロジェクトでは、キャッシュクリーンアップはプロジェクトに依存して、ローカル、グローバル、または両方になります。コマンドフラグによって異なります。 チームメンバーが「Yarn キャッシュをクリアしてください」と言う場合、最初の質問は「どの Yarn?」でなければなりません。
キャッシュの修正は、コンテキストから始まる必要があります。ローカルマシンまたは CI ランナー。 Yarn v1 または Berry。共有キャッシュまたはプロジェクトキャッシュ。
それで、コマンドは厳密になり、望ましいものではなくなります。
Yarn キャッシュをクリアするタイミングと理由

キャッシュをクリアすることの利点と理由を示すグラフィックです。
キャッシュの問題を指摘する症状
- キャッシュをクリアする必要があるケースは、以下のとおりです。 バージョンを変更したり、ローカルパッケージを再構築したりしましたが、インストールは古いアーティファクトを引き続き取得します。
- インストールは、状態的な感覚で失敗します: 1 つのマシンは動作し、もう 1 つのマシンは動作せず、同じコマンドを再実行すると同じ悪い結果が再現されます。
- ローカルディスクスペースを回復する必要があります: 開発マシンではこの問題がより重要です。短期間の CI 環境ではありません。
他の状況は、キャッシュの問題のように見えます。ロックファイルが予期せずに変更された場合、ワークスペースの設定が不一致だった場合、Docker ビルドが間違ったレイヤーを無効にした場合、キャッシュをクリアしても根本的な原因にはなりません。 managing dependencies in Capacitor projects キャッシュをクリアする際に、パッケージのトラブルシューティングが目的であれば、システムレベルのガイドも役立ちます。
Mac開発者がMacユーザーのアプリキャッシュをクリアしたい場合、 パッケージマネージャーは、ストレージの全体像のただ一部です。 Yarn clear cache を使用する際の注意点
__CAPGO_KEEP_0__プロジェクトの依存関係を管理するための実用的ガイド
Yarn のキャッシュをクリアすることは、初めてのインストール問題の解決策には使用しないでください。
パッケージの古いまたは損傷した状態の証拠がある場合にのみ使用してください。
| 状況 | 最初の動き |
|---|---|
| ロックファイルのずれ | 変更を確認し、再インストールを一貫して行う yarn.lock ワークスペース解決の問題 |
| ワークスペース設定とインストール動作を確認 | Docker の再構築の遅さ |
| レイヤー順序とキャッシュの持続性を確認 | CI の一致性 |
| __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
環境が間違っている場合、キャッシュをクリアしても次の間違ったインストールは遅くなるだけです。
キャッシュをクリアすることで時間を節約できます。多くのデバッグ時間は、キャッシュをマジックリセットボタンとして扱うことによるものです。
Yarn Classic v1のキャッシュクリア
Yarn Classicは、多くの開発者がすべてのYarnバージョンがどのように動作するかと想定しているように動作します。 ユーザーディレクトリ内でグローバルキャッシュを使用し、 ユーザーディレクトリ内で実行される次の yarn cache clean または yarn runの場合、キャッシュは再構築されます。 yarn install Yarn Classicのキャッシュ__CAPGO_KEEP_0__ドキュメント the Yarn Classic cache CLI docs.

実行されるコマンドが実際に削除するもの
Yarn v1のデフォルトのクリーンアップコマンドは、以下のように簡単です:
yarn cache clean
そのコマンドは共有キャッシュのみを削除し、現在のプロジェクトのみを削除します。同じマシン上で複数のリポジトリを扱っている場合、重要です。次のインストールで、どのリポジトリでもパッケージを再度フェッチする必要がある場合があります。
この共有キャッシュ設計は、Yarn v1がプロジェクト間で混乱を招く可能性がある一因です。ローカルパッケージ開発が含まれる場合、グローバルキャッシュ内の古いアーティファクトは、異なるリポジトリに影響を与える可能性があります。特に、キャッシュが長く生き残る場合に限ります。
Yarn Classicの実践的なシーケンスは、以下のようになります。
- 最初にクリーンコマンドを実行してください:
yarn cache clean - ローカルインストールアーティファクトを削除する必要がある場合:
node_modulesは、状態がまだ不一致の場合にしばしば次の候補になります。 - 再インストールからスクラッチ: 再度
yarn install依存性グラフが期待どおりに解決されることを確認するために
キャッシュの保存場所を確認する方法
キャッシュディレクトリを直接検査または削除したい場合は、Yarn Classicはパスを提供します。
yarn cache dir
CLIコマンドが問題を解決しない場合や、共有またはコンテナ化された環境でキャッシュディレクトリの所有者を確認する必要がある場合など、便利です。
__CAPGO_KEEP_1__をステップバイステップにインストールするこのウォークスルーは、依存関係をクリーンにリセットすることとよく相性が良いです。 installing Capacitor CLI step by step v1プロジェクトの場合、メンタルモデルは単純です。共有キャッシュが1つ、広範なクリーンアップコマンドが1つ、次のインストールで削除したものが再構築されます。
Yarn Berry v2+のモダンキャッシュ管理
Yarn Berryは会話を変えました。Yarn v1に慣れている場合は、最大の調整はキャッシュクリーンアップが単に「グローバルストアを消去してもう一度試してみる」だけではなくなったことです。Berryはより正確な制御をサポートしているため、ターゲットを知っている場合に便利です。
Yarn ClassicとYarn Berryの依存関係管理システムの主な違いを比較するグラフです。
Berryはキャッシュモデルを変更しました

キャッシュの動作はプロジェクトに依存するため、キャッシュのクリーンアップはプロジェクトごとに異なります。
キャッシュのクリーンアップはプロジェクトごとに異なります。
なぜ、古いアドバイスはあなたを誤導するのか。v1でYarnを学んだチームメンバーは、1つのコマンドで全てのグローバルキャッシュをクリアすることを期待するかもしれない。Berryでは、 スコープ.
モバイルとウェブパイプラインで異なるビルド出力を扱っている場合、同じスコープの考え方はパッケージマネージャー以外でも適用される。 ビルドの種類の比較 環境の仮定がデバッグに漏れ込むことを思い出させるのは、
ここでは、コマンドの詳細の前に、
Berryで重要なコマンド
現代のYarnドキュメント yarn cache clean キャッシュを 共有キャッシュファイルを削除する Yarnの現在のキャッシュクリーンコマンドの参考資料:
yarn cache cleanYarnの共有キャッシュファイルを削除します。yarn cache clean --mirrorグローバルキャッシュをクリアするのではなく、ローカルプロジェクトキャッシュをクリアします。yarn cache clean --allグローバルキャッシュファイルと現在のプロジェクトのローカルキャッシュファイルを両方削除します。
Yarn v1よりも意図的なワークフローを提供します。
| 目標 | コマンド |
|---|---|
| デフォルトの共有キャッシュスコープをクリーンする | yarn cache clean |
| グローバルミラーキャッシュをターゲットする | yarn cache clean --mirror |
| ローカルとグローバルキャッシュファイルの完全なリセットを行う | yarn cache clean --all |
使用する場合、完全に「新しく始める」に近いものになります。 --all 使用する場合、問題がグローバルキャッシュ層にあり、プロジェクト全体をクリアしたくない場合に使用します。 --mirror 使用する場合、完全に「新しく始める」に近いものになります。
重要なポイント: Berryでスコープを間違って選択すると、キャッシュクリーンが「何もしないように」見えるのは、主な理由の1つです。
実際の違いはこれです。Yarn Classicはデフォルトで広範囲にわたっています。Berryはデザイン上明確です。
CI/CDとDockerのためのYarnキャッシュのベストプラクティス
CI/CDで無条件にYarnキャッシュをクリアすると、通常、間違いです。安全なように思えるのは、状態を削除するからですが、実際には、速度と再現性を確保するために依存している状態を削除することになります。
より有益な質問はこちらです。 キャッシュするものと、キャッシュを復元するものはどれですか。

キャッシュクリーンがパイプラインにしばしば間違った動作を引き起こす理由
CircleCIの議論で、多くのチームが実際のプロジェクトで遭遇する失敗パターンが記載されています。キャッシュクリーンが遅いインストールを解決しないのは、古いパッケージアーカイブが原因ではなく、フェッチとリンクの動作、キャッシュディレクトリの不一致、キャッシュセット内のパスが欠けていることなど、 node_modules CircleCIのYarnキャッシングスレッド __CAPGO_KEEP_0__.
CIシステムは、根本的な原因を隠す一つの曖昧な症状「インストールが遅い」や「依存関係のステップが不安定」などに焦点を当ててしまい、開発者はキャッシュをクリアし、再実行し、意味のある改善は得られないことが多い。
一般的なパイプラインの誤りには含まれる
- 間違ったディレクトリをキャッシュする: Yarnが復元された場所を使用しないので、restoreステップは完了します。
- ワークスペースのパスを無視する: ルート依存関係は復元されると、ワークスペースのインストールがまだリリンクする必要がある。
- Dockerレイヤーを間違った順序でビルドする: ソースcodeのコピーは依存関係レイヤーを無効にし、パッケージのインストールが毎回実行される。
CIでは、悪い構成によって引き起こされるキャッシュミスは、汚れたキャッシュとよく似ている。
自動環境でモバイルアプリをビルドしている場合、このはリリースツールの場面でもある。チームはよくGitHubアクションやCircleCIを組み合わせて、配布と更新システムと組み合わせる。 そのより広いワークフローの中で、CapgoのCI/CD設定はCapacitorアプリのオプションの1つである。パッケージマネージャとビルドキャッシュの戦略と並んで
A better CI and Docker approach
CIキャッシュを意図的に、感情ではなくて、無駄に無効にしないでください。
CIの信頼できるパターンは以下のようになります。
- 依存性の状態に基づいてキャッシュを実行してください。 キャッシュキーを
yarn.lockと関連するYarnの設定ファイルに結びつけてください。 - キャッシュを復元する前に キャッシュが復元されたパスがその環境でYarnが使用するパスと一致することを確認してください。
- インストールを一貫して行ってください。 不変の設定では、ロックファイルの正しさを強制するインストールモードを使用してください。
- 実際の変更に基づいてキャッシュを無効にします。 Yarnのバージョン変更、ロックファイルの更新、キャッシュパスの変更はキャッシュを再構築するのに適した理由です。
Dockerの場合、原則は類似しています:
- 依存関係のマニフェストをコピーする: __CAPGO_KEEP_0__依存関係のインストール層を、可能な限りアプリケーションソースから分離する。
- イメージビルドで不要なクリーンアップを避ける: 同じビルド内でキャッシュを削除すると、有用なレイヤーの再利用が失われることがよくあります。
- ユーザー所有権について明示的に指定する: rootによって作成されたキャッシュディレクトリは、後で非rootランタイムユーザーでインストールする際に失敗する可能性があります。
短い決定表を使用すると便利です:
| シナリオ | より良いアクション yarn cache clean |
|---|---|
| CIインストールが復元後で遅くなった場合 | キャッシュパスと復元順序を確認する |
| ワークスペースは依然として頻繁に再接続する | 関連するワークスペースのインストールアーティファクトをキャッシュする |
| docker再構築はインストールを実行する | 依存ファイルのレイヤーを再配置する |
| 依存関係の変更後1つの悪いビルド | キャッシュキーの無効化、そしてクリーンに再構築する |
CIでしかYarnのキャッシュクリアを使用する。キャッシュが古い問題であることを確認した後、ほとんどの場合、キャッシュ設計が改善されるのがより良い解決策です。
Yarnキャッシュの一般的なトラブルシューティング
キャッシュクリーン後に生き残るキャッシュバグは最もフラストレーションを感じるものです。ターゲットされたクリーンアップ、再インストールを実行した後でも、Yarnは古いパッケージを引き続き取得します。その時点で、レジストリが間違っているか、ロックファイルが呪われていると仮定するのは魅力的です。
Yarnの文書化された歴史的な問題はその理由を示しています。開発者は yarn cache clean <package-name> 古いコピーを残す可能性がある cache/.tmp、という問題を報告しました。これにより、インストールは古いバージョンを使用し続けます。ただし、臨時ディレクトリが削除されるか、完全なクリーンアップが実行されるまで、古いバージョンを使用し続けます。 Yarnのキャッシュアーティファクトの古さに関する問題について .tmp.
ターゲットされたクリーンでも古いパッケージが残っている場合
教訓は簡単です。 部分的なクリーンは常に十分ではありません。
バージョンの古さを疑うのではなく、広範な汚染を疑る場合は、この順序を使用してください。
- 明らかなチェックから始めましょう。 期待どおりのパッケージバージョンとソースを確認することから始めましょう。
- パッケージ固有のクリーンに頼るのはあまりよくありません。 ターゲットされたクリーンでも一時的なアーティファクトが残っている可能性があります。
- 完全なキャッシュの消去に進めます。 古いバージョンが続いている場合は、より広範なキャッシュスコープをクリーンアップしてください。
- テンプキャッシュパスを手動で検査してください。 古い設定では、
cache/.tmp必要な部分が欠けている場合、それがこのソリューションを完成させる鍵となる。
パッケージが古いアーティファクトに解決する場合、キャッシュファイルは失敗したターゲットのクリーン後に最初に調べるべき場所です。
キャッシュの問題のように見える権限や環境の問題
キャッシュエラーはすべてキャッシュコンテンツの問題ではありません。
Docker、多ユーザーLinuxシステム、またはCIランナーでは、キャッシュディレクトリの所有者がプロセスが実行されているユーザーと異なるため、パーミッションエラーが発生する可能性があります。 その場合、キャッシュをクリアしても直効しません。所有権の問題を解決するまで、実行ユーザーでYarnを実行するか、ディレクトリの所有権を修復して再インストールする必要があります。
そのような問題は、環境によって一貫してインストールが失敗するため、古いキャッシュのように表示されることがよくあります。対処法は、パッケージとは関係のない運用上の問題です。
よくある質問: Yarn キャッシュをクリアする方法
キャッシュをクリアすることは安全ですか?
はい。通常の開発では、キャッシュされたパッケージアーティファクトを削除するだけなので、安全な操作です。アプリケーションのソースコードは削除されません。Yarnは次のインストールで必要なものを再度取得できます。
キャッシュをクリアすることで、次回のインストールでは通常よりも多くのデータをダウンロードまたは再構築する必要がある可能性があります。
__CAPGO_KEEP_0__を何回実行する必要がありますか。
Only when you have a reason.
Yarn clear cache shouldn’t be routine maintenance on a healthy project. If you put it into every workflow by habit, you’ll slow down local installs and undermine CI caching. Use it when dependencies are stale, installs look corrupted, or you need a deliberate reset during debugging.
Will it affect production builds
Not directly. Clearing your local or CI cache doesn’t change the application code you’ve committed.
What it does change is the environment that prepares the build. If your production pipeline depends on cached install artifacts, clearing them can make builds slower or expose hidden reproducibility problems. That’s useful during troubleshooting, but it’s not something to sprinkle into release scripts without a reason.
What’s the simplest practical rule to follow
Use the smallest cleanup that matches the problem.
For local debugging, start with the cache scope Yarn uses in that project. For CI and Docker, fix cache design before you start wiping caches. And when a package-specific clean doesn’t work, assume temporary artifacts or environment mismatch before assuming Yarn is broken.
If your team ships Capacitor apps and needs a cleaner release pipeline after dependency or build issues, Capgo is one option for delivering JavaScript and asset updates without waiting for store review, while keeping your build and rollout process separate from package-cache troubleshooting.