당신이 실행하는 yarn install와 의존성이 업데이트된 후에도 여전히 이전 빌드로 해결된다. 또는 당신의 노트북은 설치가 잘되지만 CI는 무해한 lockfile 변경 후 갑자기 실패한다. 또는 Docker rebuilds drag on, even though you’re “using cache.”
그것은 일반적으로 사람들이 검색할 때가 많습니다. Yarn 캐시 지우기 그리고 첫 번째 명령어를 찾은 후 붙여넣습니다.
일단 그것이 작동하는 경우가 있습니다. 일단 그것이 아무것도 고치지 않는 경우도 있습니다. 그 이유는 간단합니다: Yarn의 캐시 동작은 사용 중인 Yarn에 따라서 매우 달라지며, Yarn Classic v1 와 Yarn Berry v2+ 의 차이는 충분히 크기 때문에 올바른 명령어와 올바른 문제 해결 전략 모두가 달라집니다.
가이드는 여기서 멈추지만, 그것은 시작점입니다. 중요한 것은 캐시 범위, 프로젝트가 로컬 캐시를 사용하는지 공유 캐시를 사용하는지, 그리고 실제 문제가 캐시 자체인지 여부입니다. yarn cache cleanCI와 Docker에서 잘못된 캐싱 전략은 스테일 패키지 아카이브보다 더 많은 고통을 주는 경우가 많습니다.
내용
- 빌드가 깨져서 Yarn 캐시가 문제인 경우
- __CAPGO_KEEP_0__와 __CAPGO_KEEP_1__를 삭제하는 이유
- __CAPGO_KEEP_0__ v1에서 캐시 삭제
- __CAPGO_KEEP_0__ v2+에서 캐시 관리
- __CAPGO_KEEP_0__ 캐시 최적화 CI/CD 및 Docker
- 일반 Yarn 캐시 오류 해결
- Yarn 캐시를 지우는 것에 대한 자주 묻는 질문
빌드가 깨졌고 Yarn 캐시가 원인일 수 있다
유명한 패턴은 다음과 같다. 패키지를 업그레이드하고, 최신 변경 사항을 pull하고, 다시 install 명령어를 실행한다. 명령어가 완료되지만, 앱은 여전히 이전 의존성을 포함하는 것처럼 행동한다. 그 다음에 alguien이 캐시를 지우라고 제안하고, 이제는 그게 진짜 해결책인지 아니면 단순한 상상인지 궁금해한다.
그것은 진짜 해결책일 수 있다. 그것은 또한 분산이다.
캐시 문제는 일반적으로 몇 가지 예측 가능한 방식으로 나타난다. 지역 패키지가 업데이트되지 않습니다. CI가 예상치 못한 것을 pull합니다. 새로운 branch가 main branch와 다르게 행동한다는 것은 lockfile가 모든 것이 일치해야 한다고 말하더라도. 만약 이미 더 광범위한 pipeline 불안정성을 추적하고 있다면, 캐시 디버깅을 pair하는 데 도움이 되는 더 체계적인 빌드 리뷰를 수행하는 것이 좋다. 예를 들어, 이 가이드에 대해 Capacitor CI/CD PIPELINE 오류를 수정하는 방법.
실용적인 규칙: Yarn 캐시를 초기화하는 것은 진단 도구로 사용하는 것이 유지보수 의식에 빠지지 않는 것이 중요합니다.
Yarn 캐시 모델이 시간에 따라 변경되었기 때문에 문제가 있는 부분은 캐시 모델 자체입니다. 이전 프로젝트에서는 캐시가 전역으로 공유되었지만, 새로운 프로젝트에서는 캐시 정리 옵션은 프로젝트 캐시, 전역 캐시, 또는 두 가지 모두에 따라 명령어 플래그에 따라 달라집니다. 따라서 팀원에게 “Yarn 캐시를 초기화해라”고 말할 때, 첫 번째 질문은 “어떤 Yarn?”입니다. 이것이 좋은 캐시 초기화 방법의 시작입니다. 로컬 머신 또는 CI 실행자. Yarn v1 또는 Berry. 공유 캐시 또는 프로젝트 캐시. 그 정보를 알면 명령어는 정확해집니다.
Yarn 캐시를 초기화할 때
Yarn 캐시를 초기화하는 것은 특정 오류 모드가 있는 경우에만 의미가 있습니다. stale 패키지 아티팩트를 제거하거나 다운로드 오류를 복원하거나 의도적으로 저장된 패키지를 삭제하여 Yarn이 다시 빌드할 수 있도록 하는 경우가 그렇습니다.
Yarn 캐시: 초기화할 때와 이유를 설명하는 그래픽.

어떤 경우는 캐시 문제가 확실합니다.
의존성 업데이트를 거부하는 경우
- 캐시 You changed the version, or rebuilt a local package, but installs still pull an older artifact.
- 설치들이 이전 버전의 아티팩트를 pulls하는 이유는 무엇일까요? 한 대의 컴퓨터는 작동하지만 다른 대의 컴퓨터는 작동하지 않으며 동일한 명령어를 다시 실행하면 동일한 문제가 발생합니다.
- 로컬 디스크 공간을 회수해야 합니다. 개발자 머신에서 더 중요합니다.
Cache 문제가 아닌 다른 상황도 Cache를 지우면 해결되지 않을 수 있습니다. managing dependencies in Capacitor projects 앱 빌드에 참여하는 팀은 자주 native tooling, JavaScript dependencies, 그리고 플러그인 업데이트와 관련된 문제를 겪습니다.
__CAPGO_KEEP_0__ 프로젝트의 의존성 관리에 대한 실용적인 개요는 이러한 상황에서 유용합니다. 목표가 더 광범위한 머신 클린업이 아닌 패키지 문제 해결이라면 시스템 수준의 가이드도 도움이 될 수 있습니다. 맥 개발자들은 맥 사용자들을 위한 앱 캐시를 지우기 위해
패키지 매니저가 저장소의 한 부분만을 차지하는 것을 발견합니다.
Yarn 캐시를 초기 설치 문제의 첫 번째 반응으로 사용하지 마세요.
이용할 때는 스테일 또는 손상된 패키지 상태의 증거가 있습니다.
| 더 좋은 첫 번째 움직임 | Lockfile 드리프트 |
|---|---|
| 변경 사항을 검토하고 일관되게 다시 설치하세요. | 워크스페이스 해결 문제 yarn.lock 워크스페이스 구성과 설치 동작을 검토하세요. |
| 도커 재빌드 느려짐 | 레이어 순서와 캐시 지속성을 검토하세요. |
| CI 불일치 | 변경 사항을 검토하고 일관되게 다시 설치하세요. |
| 워크스페이스 해결 문제 | __CAPGO_KEEP_0__ |
환경 설정이 잘못되어 설치가 잘못된 경우, 캐시를 지우기만 하면 다음 잘못된 설치가 더 느려질 뿐입니다.
캐시를 마술로 리셋하는 버튼으로 다루는 것은 많은 시간을浪費하는 디버깅의 원인이 됩니다.
Yarn Classic v1에서 캐시를 지우는 방법
Yarn Classic은 많은 개발자들이 모든 Yarn 버전이 어떻게 동작하는지 여전히 가정하는 방식으로 동작합니다. 전역 캐시 사용자 디렉토리에 yarn cache clean 캐시를 지우면 공유 캐시를 지웁니다. Yarn Classic의 공식 문서는 이 방식으로 설명하고 있으며, 다음 yarn 사용자 디렉토리 모델에 따라서 캐시가 다시 채워집니다. yarn install __CAPGO_KEEP_0__ CLI.

명령어에서 실제로 삭제하는 것
Yarn v1의 기본 클린업 명령어는 다음과 같습니다:
yarn cache clean
그 명령어는 공유 캐시를 지우고 현재 프로젝트만 지우지 않습니다. 여러 저장소에 작업하는 경우, 같은 머신에서 작업할 때 중요합니다. 다음 설치 시에 어떤 저장소든 다시 패키지를 다운로드해야 할 수 있습니다.
공유 캐시 설계는 Yarn v1이 프로젝트 간에 혼란스러운 동작을 일으키는 이유입니다. 글로벌 캐시에 있는陈舊한 아티팩트는 다른 저장소에 영향을 미칠 수 있습니다, 특히 로컬 패키지 개발이 관련된 경우.
Yarn Classic의 실용적인 순서는 다음과 같습니다:
- 먼저 클린 명령어를 실행하세요:
yarn cache clean - 필요한 경우 로컬 설치 아티팩트를 삭제하세요:
node_modules이 때 상태가 여전히 불일치할 때는 __CAPGO_KEEP_0__가 자주 후보가 됩니다. - 스크래치에서 다시 설치하세요: 다시 실행하고 의존성 그래프가 올바르게 해결되는지 확인하세요:
yarn install다시 실행
How to verify the cache location
__CAPGO_KEEP_0__ 디렉토리를 직접 검사하거나 삭제하고 싶을 때, Yarn Classic은 경로를 제공합니다.
yarn cache dir
CLI 명령어가 문제를 해결하지 않는 경우 또는 공유 또는 컨테이너화된 환경에서 캐시 디렉토리의 소유자 계정을 확인해야 할 때 유용합니다.
__CAPGO_KEEP_1__을 __CAPGO_KEEP_0__ 단계별로 설치하는 이 walkthrough는 installing Capacitor CLI step by step 캐시 디렉토리를 직접 검사하는 것은 두 번째 무의식적인 삭제 명령보다 더 가치가 있습니다.
v1 프로젝트의 경우, 정신 모델은 간단합니다. 하나의 공유 캐시, 하나의 광범위한 삭제 명령, 그리고 다음 설치가 삭제한 것을 다시 채웁니다.
Yarn Berry v2+의 현대적인 캐시 관리
Yarn Berry는 대화의 방향을 바꾸었습니다. Yarn v1에 익숙한 경우, 가장 큰 조정은 캐시 삭제가 더 이상 단순히 '전역 저장소의 모든 것을 지우고 다시 시도'가 아니라는 것입니다. Berry는 더 정확한 제어를 지원하며, 대상이 무엇인지 알기만 하면 유용합니다.
Yarn Classic과 Yarn Berry의 의존성 관리 시스템의 주요 차이점을 비교하는 차트.

현대 Yarn의 캐시 동작은 프로젝트 자체와 더密하게 결합되어 있습니다. 이는 Berry의 더 광범위한 프로젝트 수준 제어, Plug’n’Play, 그리고 의존성이 저장소와 함께 살 수 있는 워크플로우와 일치합니다.
__CAPGO_KEEP_0__
That’s why old advice can mislead you. A teammate who learned Yarn on v1 may expect one command to purge everything globally. In Berry, you need to think in terms of __CAPGO_KEEP_0__. scope.
If you’re dealing with different build outputs across mobile and web pipelines, that same scope mindset applies outside package management too. This comparison of __CAPGO_KEEP_0__ types of builds is a useful reminder that environment assumptions tend to leak into debugging.
Here’s a quick visual explainer before the command details:
The commands that matter in Berry
Modern Yarn documents yarn cache clean as removing shared cache files, and it exposes two important switches in __CAPGO_KEEP_0__ the current Yarn cache clean command reference:
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 전역 캐시层에서 문제가 있는 경우 프로젝트의 모든 것을 삭제하고 싶지 않다면 사용합니다.
Decision point: Berry에서 범위 선택이 잘못되면 캐시 클린이 “nothing”처럼 보이는 주요 이유 중 하나입니다.
실질적인 차이점은 Yarn Classic이 기본적으로 넓은 반면 Berry는 설계 상 명확합니다.
CI/CD 및 Docker를 위한 Yarn 캐시 최적화
CI/CD에서 캐시를 무심코 지우는 것은 일반적으로 실수입니다. 캐시를 지우면 상태가 제거되는 것처럼 안전해 보이지만, 종종 캐시에서 속도와 반복 가능성을 위해 의존하는 상태를 제거합니다.
보다 유용한 질문은 이렇습니다. 어떤 것을 캐시하고 어떤 것을 복원하는지 정확히 알고 싶습니다.

pipeline에서 캐시 클린을 제거하는 것이 잘못된 선택입니다.
CircleCI 토론에서 많은 팀이 실제 프로젝트에서 겪는 실패 패턴이 캡처되었습니다. 느린 설치가 캐시 클린으로 해결되지 않은 이유는 오래된 패키지 아카이브가 아니라 fetch 및 link 동작, 캐시 디렉토리 일치, 캐시된 세트에서 누락된 경로 때문입니다. node_modules CircleCI Yarn 캐싱 스레드에서 설명한 것과 같습니다. __CAPGO_KEEP_0__.
That matters because CI systems often hide the underlying cause behind one vague symptom: “install is slow” or “dependency step is flaky.” Developers then clear cache, rerun, and get no meaningful improvement.
개발자들이 일반적으로 CI 시스템에서 발생하는 문제를 해결하는 데 어려움을 겪는 이유는?
- 잘못된 디렉토리를 캐싱하는 경우: Yarn이 캐시된 위치를 사용하지 않기 때문에 restore 단계가 완료되더라도:
- 워크스페이스 경로를 무시하는 경우: 루트 의존성이 복원되면 워크스페이스 설치 작업이 다시 링크되야 하므로:
- Docker 레이어를 올바른 순서로 빌드하는 경우: 소스 code 복사본이 의존성 레이어를 무효화하여 패키지 설치가 매번 다시 실행되는 경우:
CI에서 캐시 미스가 발생하는 경우, 이는 일반적으로 불량한 구성으로 인한 캐시 미스로 보인다.
자동화된 환경에서 모바일 앱을 빌드하는 경우, 릴리즈 툴링도 이에 포함된다. 팀들은 종종 GitHub Actions 또는 CircleCI와 배포 및 업데이트 시스템을 결합한다. 그 중 하나의 옵션은 Capgo의 CI/CD 설정을 사용하여 Capacitor 앱을 빌드하는 것이다.패키지 매니저와 빌드 캐시 전략과 함께
__CAPGO_KEEP_0__
__CAPGO_KEEP_1__
__CAPGO_KEEP_2__
- __CAPGO_KEEP_3__ __CAPGO_KEEP_4__
yarn.lock__CAPGO_KEEP_5__ - __CAPGO_KEEP_6__ __CAPGO_KEEP_7__
- __CAPGO_KEEP_8__ __CAPGO_KEEP_9__
- __CAPGO_KEEP_10__ __CAPGO_KEEP_11__
Docker의 경우 원칙은 유사합니다:
- 의존성 매니페스트를 복사하세요: 의존성 설치层를 애플리케이션 소스와 분리할 수 있는 경우에만 유지하세요.
- 이미지 빌드에서 불필요한 청소는 피하세요. 같은 빌드 내에서 캐시 삭제는 유용한 레이어 재사용을 제거합니다.
- 사용자 소유권에 명확하게 설명하세요: 루트가 생성한 캐시 디렉토리는 나중에 비 루트 런타임 사용자에 의해 설치 실패를 유발할 수 있습니다.
결정 표를 간단하게 유지하세요:
| Scenario | CI 설치가 복원 후 느려지면: yarn cache clean |
|---|---|
| 캐시 경로와 복원 순서를 확인하세요. | Verify cache path and restore order |
| 워크스페이스 재연결이 여전히 많이 발생합니다. | 관련 워크스페이스 설치 아티팩트를 캐시합니다. |
| 도커 재빌드는 설치를 다시 실행합니다. | 의존성 파일에 따라 레이어를 재정렬합니다. |
| 의존성 변경 후에 하나의 빌드가 실패합니다. | 캐시 키를 invalidate하고 깨끗하게 다시 빌드합니다. |
CI에서만 Yarn clear cache를 사용하십시오. 대부분의 경우, 캐시 디자인을 개선하는 것이 더 좋은 해결책입니다. 캐시가 오래된 내용일 경우에만 캐시를 지웁니다.
Yarn 캐시 오류 해결 방법
가장 괴로운 캐시 버그는 캐시를 지우고도 살아남는 버그입니다. 캐시를 지우고 다시 설치하고 Yarn이 여전히 이전 패키지를 불러오면, 그때는 레지스트리가 잘못된 것인지, lock파일이 귀신에 의해 지배되고 있는 것인지 의심하게 됩니다.
Yarn의 문서화된 역사적인 문제는 왜 그렇게 되는지 설명합니다. 개발자들은 yarn cache clean <package-name> 이러한 버그를 보고했습니다. cache/.tmp이 버그는 의존성 변경 후에 캐시를 지우고 다시 설치했을 때도 여전히 이전 버전의 패키지를 불러오게 됩니다. 이 문제는 Yarn의 버그가 아니고, 개발자가 의존성 변경 후에 캐시를 지우고 다시 설치하지 않아서 발생하는 문제입니다. __CAPGO_KEEP_0__에 대한 stale cache artifact에 대한 Yarn 문제 .tmp.
__CAPGO_KEEP_0__에 대한 targeted clean이 여전히 stale package를 남긴다면
이것은 간단한 교훈입니다. 부분적인 clean은 항상 충분하지 않습니다.
버전의 오래된 것보다는 광범위한 손상에 대한 의심이 있다면 이 순서를 사용하십시오.
- obvious한 확인부터 시작하십시오. __CAPGO_KEEP_0__에 대한 예상 패키지 버전과 원본을 확인하십시오.
- __CAPGO_KEEP_0__에 대한 패키지별 clean에 너무 많은 신뢰를 하지 마십시오. targeted cleanup은 임시 artifact를 남길 수 있습니다.
- full cache wipe로 승격하십시오. 오래된 버전이 지속된다면 broader cache scope를 clean하십시오.
- temp cache path를 수동으로 검사하십시오. In older setups,
cache/.tmpcan be the missing piece.
When a package keeps resolving to an old artifact, temporary cache files are often the first place I’d inspect after a failed targeted clean.
권한 및 환경 문제가 캐시 문제처럼 보일 수 있습니다.
Not every “cache error” is a cache-content problem.
Docker, 다중 사용자 Linux 시스템, 또는 CI 실행자에서, 캐시 디렉토리가 프로세스 실행 중인 사용자와 다르면 권한 실패가 발생할 수 있습니다. 그 경우 캐시를 삭제하는 것은 권한 문제를 해결하지 않는 한 도움이 되지 않습니다. 실제로 실행하는 사용자와 동일한 사용자로 Yarn을 실행하거나 디렉토리 권한을 수정한 후 재설치하는 것이 좋습니다.
That kind of issue often presents like stale cache because installs fail inconsistently across environments. The fix is operational, not package-related.
Frequently Asked Questions About Clearing the Yarn Cache
Yarn 캐시를 삭제하는 것이 안전한가요
Yes. In normal development, it’s a safe operation because you’re removing cached package artifacts, not deleting your application source. Yarn can fetch what it needs again on the next install.
다음 설치 시 캐시를 삭제하면 일반적으로 시간이 더 걸릴 수 있습니다.
어떻게 자주 캐시를 삭제해야 하나요
Only when you have a reason.
Yarn의 캐시를 정리하는 것은 건강한 프로젝트의 정기적인 유지보수 작업으로 shouldn’t하지 않습니다. 캐시를 정리하는 것을 모든 워크플로우에 습관적으로 넣으면, 로컬 설치를 느리게하고 CI 캐싱을 약화시킬 것입니다. 의존성이陈舊한 경우, 설치가 손상된 경우, 또는 디버깅 중에 의도적인 리셋이 필요할 때만 사용하십시오.
production 빌드에 영향을 줄까요
아니요. 로컬 또는 CI 캐시를 정리하는 것은 커밋한 애플리케이션 code을 변경하지 않습니다.
그러나 캐시된 설치 아티팩트에 의존하는 프로덕션 PIPELINE이 있다면, 캐시를 정리하면 빌드 속도가 느려지거나 숨겨진 재현성 문제를 노출할 수 있습니다. 디버깅 중에는 유용하지만, 릴리즈 스크립트에 캐시를 정리하는 것을 습관적으로 넣으면 안됩니다.
어떤 가장 간단한 실용적인 규칙을 따르면 좋을까요
문제에 맞는 가장 작은 청소 작업을 사용하십시오.
로컬 디버깅 중에는 Yarn이 사용하는 프로젝트의 캐시 범위에서 시작하십시오. CI 및 Docker의 경우 캐시 디자인을 수정하기 전에 캐시를 삭제하는 것을 시작하지 마십시오. 패키지별로 청소 작업이 작동하지 않으면, 임시 아티팩트 또는 환경 불일치로 가정하고 Yarn이 깨진 것이 아닌지 확인하십시오.
팀이 Capacitor 앱을 배포하고 의존성 또는 빌드 문제로 릴리즈 PIPELINE이 더 깨끗하게 필요하다면 Capgo 는 스토어 리뷰를 기다리지 않고 자바스크립트 및 자산 업데이트를 제공하는 데 사용할 수 있는 옵션입니다. 또한 패키지 캐시 문제 해결과 빌드 및 롤아웃 프로세스를 분리할 수 있습니다.