import Patch from "/snippets/cli/patch.mdx";
bun patch 을 사용하면 node_modules 를 유지 관리 가능하고 git 친화적인 방식으로 영구적으로 패치할 수 있습니다.
가끔 버그를 수정하거나 기능을 추가하기 위해 node_modules/ 의 패키지에 작은 변경을 가해야 할 때가 있습니다. bun patch 을 사용하면 전체 패키지를 벤더링하지 않고도 이를 쉽게 수행할 수 있으며 여러 설치, 여러 프로젝트 및 여러 머신에서 패치를 재사용할 수 있습니다.
기능:
- 설치 시
node_modules의 의존성에 적용되는.patch파일 생성 .patch파일은 저장소에 커밋할 수 있으며 여러 설치, 프로젝트 및 머신에서 재사용 가능package.json의"patchedDependencies"가 패치된 패키지를 추적bun patch을 사용하면 Bun 의 전역 캐시 무결성을 유지하면서node_modules/의 패키지를 패치할 수 있습니다bun patch --commit <pkg>로 커밋하기 전에 로컬에서 변경 사항 테스트- 디스크 공간을 절약하고
bun install을 빠르게 유지하기 위해 패치된 패키지는 가능한 경우 전역 캐시에 커밋되고 프로젝트 간에 공유됩니다
1 단계: 패치를 위해 패키지 준비
시작하려면 bun patch <pkg> 를 사용하여 패치를 위해 패키지를 준비합니다.
# 패키지 이름 제공
bun patch react
# ...여러 버전이 설치된 경우 정확한 버전 제공
bun patch react@17.0.2
# 또는 패키지 경로 제공
bun patch node_modules/react참고
bun patch <pkg> 를 호출하는 것을 잊지 마세요! 이는 node_modules/ 의 패키지 폴더에 Bun 의 캐시에 대한 심볼릭 링크/하드링크가 없는 새 복사본이 포함되어 있는지 확인합니다. 이 작업을 잊으면 전역 캐시에서 패키지를 편집하게 될 수 있습니다!
2 단계: 로컬에서 변경 사항 테스트
bun patch <pkg> 는 Bun 의 전역 캐시 무결성을 유지하면서 node_modules/ 의 <pkg> 를 직접 편집하는 것을 안전하게 만듭니다. 이는 전역 캐시의 원래 패키지와 비교하여 node_modules/ 에 패키지의 링크되지 않은 복제본을 다시 생성하여 작동합니다.
3 단계: 변경 사항 커밋
변경 사항이 만족스러우면 bun patch --commit <path or pkg> 를 실행합니다.
Bun 은 patches/ 에 패치 파일을 생성하고 package.json 과 lockfile 을 업데이트하며 Bun 은 패치된 패키지를 사용하기 시작합니다.
# 패치된 패키지 경로 제공
bun patch --commit node_modules/react
# ...또는 패키지 이름과 선택적으로 버전 제공
bun patch --commit react@17.0.2
# 패치 파일을 저장할 디렉토리 선택
bun patch --commit react --patches-dir=mypatches
# `patch-commit` 은 pnpm 과의 호환성을 위해 사용 가능합니다
bun patch-commit react