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을 병합하려면 pnpm install 명령에 --merge-git-branch-lockfiles를 지정하기만 하면 됩니다.
그 후, 모든 git 브랜치 lockfile이 하나의 pnpm-lock.yaml로 병합됩니다
브랜치 매칭#
pnpm에서는 현재 브랜치 이름과 일치시켜 --merge-git-branch-lockfiles를 지정할 수 있습니다.
예를 들어, pnpm-workspace.yaml 파일에 다음과 같이 설정하면, main 브랜치 및 이름이 release로 시작하는 브랜치에서 실행할 때 pnpm install이 모든 git 브랜치 lockfile을 병합합니다.
mergeGitBranchLockfilesBranchPattern:
- main
- release*