Gitブランチロックファイル
Gitブランチロックファイルを使用すると、ロックファイルのマージ競合を完全に回避し、後で解決できます。
Gitブランチロックファイルの使用
この機能を有効にするには、`.npmrc`ファイルを構成します。
git-branch-lockfile=true
これにより、現在のブランチ名に基づいてロックファイル名が生成されます。
たとえば、現在のブランチ名が`feature-1`の場合、生成されるロックファイル名は`pnpm-lock.feature-1.yaml`になります。これをGitにコミットし、後ですべてのGitブランチロックファイルをマージできます。
- <project_folder>
|- pnpm-lock.yaml
|- pnpm-lock.feature-1.yaml
|- pnpm-lock.<branch_name>.yaml
注記
`feature/1`は特殊で、`/`が自動的に`!`に変換されるため、対応するロックファイル名は`pnpm-lock.feature!1.yaml`になります。
Gitブランチロックファイルのマージ
`pnpm install --merge-git-branch-lockfiles`
すべてのGitブランチロックファイルをマージするには、`pnpm install`コマンドに`--merge-git-branch-lockfiles`を指定します。
その後、すべてのGitブランチロックファイルが1つの`pnpm-lock.yaml`にマージされます。
ブランチの一致
pnpmでは、現在のブランチ名と一致させることで`--merge-git-branch-lockfiles`を指定できます。
たとえば、`.npmrc`ファイルに以下の設定を行うことで、`main`ブランチとブランチ名が`release`で始まるブランチで実行した場合、`pnpm install`はすべてのGitブランチロックファイルをマージします。
merge-git-branch-lockfiles-branch-pattern[]=main
merge-git-branch-lockfiles-branch-pattern[]=release*