Git 브랜치 lockfile
Git 브랜치 lockfile을 사용하면 lockfile 병합 충돌을 완전히 피하고 나중에 해결할 수 있습니다.
Git 브랜치 lockfile 사용#
pnpm-workspace.yaml 파일을 구성하여 이 기능을 켤 수 있습니다.
gitBranchLockfile: true
이렇게 하면 현재 브랜치 이름을 기반으로 lockfile 이름이 생성됩니다.
예를 들어, 현재 브랜치 이름이 feature-1이라고 가정합니다. 그러면 생성되는 lockfile 이름은 pnpm-lock.feature-1.yaml이 됩니다. 이를 Git에 커밋하고, 나중에 모든 Git 브랜치 lockfile을 병합할 수 있습니다.
- <project_folder>
|- pnpm-lock.yaml
|- pnpm-lock.feature-1.yaml
|- pnpm-lock.<branch_name>.yaml
참고
feature/1은 특별한 경우로 /가 자동으로 !로 변환되므로, 해당 lockfile 이름은 pnpm-lock.feature!1.yaml이 됩니다.
Git 브랜치 lockfile 병합#
pnpm install --merge-git-branch-lockfiles#
모든 Git 브랜치 lockfile을 병합하려면 --merge-git-branch-lockfiles를 pnpm install 명령에 지정하기만 하면 됩니다.
그러면 모든 Git 브랜치 lockfile이 하나의 pnpm-lock.yaml로 병합됩니다
브랜치 매칭#
pnpm에서는 현재 브랜치 이름을 매칭하여 --merge-git-branch-lockfiles를 지정할 수 있습니다.
예를 들어, pnpm-workspace.yaml 파일에서 다음과 같이 설정하면, pnpm install은 main 브랜치에서 실행되거나 브랜치 이름이 release로 시작할 때 모든 Git 브랜치 lockfile을 병합합니다.
mergeGitBranchLockfilesBranchPattern:
- main
- release*