lockfile とは何か:同じ依存関係を再現するための記録

入門 | 6分 で読める | 2026.07.09

公式ドキュメント

まず結論

lockfileは、実際に組み合わせた依存パッケージの版を記録するファイルです。 チームやCIで同じ依存関係を入れやすくします。

許容範囲から解決した依存関係の組み合わせをlockfileに記録し、手元の環境とCIで記録した版をそろえる図

package.jsonだけでは足りない理由

package.json には ^1.2.0 のように許容範囲を書くことがあります。この範囲に新しい版が出ると、別の日に npm install した結果が変わることがあります。

package-lock.json には、解決された版と依存先の組み合わせが記録されます。npmでは通常、プロジェクトのlockfileをGitで共有します。

何を使うかは一つにそろえる

パッケージマネージャー代表的なlockfile
npmpackage-lock.json
pnpmpnpm-lock.yaml
Yarnyarn.lock

同じプロジェクトで複数のlockfileを混ぜると、どれを正とするか分からなくなります。既存のプロジェクトが使うマネージャーを確認してから追加・更新します。

lockfileが変わった時に見ること

  • 自分が追加・更新した依存関係に対応する差分か
  • 意図しない多数の更新が混ざっていないか
  • package.json と矛盾していないか
  • CIではlockfileどおりにインストールできるか

lockfileを手で直すのではなく、使っているパッケージマネージャーのコマンドで更新します。

まとめ

lockfileは「依存関係をその時点で再現する記録」です。プロジェクトで一つのパッケージマネージャーを使い、package.json とlockfileをセットでレビューします。

参考リソース

次に読む記事

← 一覧に戻る
PR
PR
PR
PR