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*