ロックファイルのバージョンはnpmに対応する

npm installで作成されるpackage-lock.jsonのlockfile-versionは1〜3の値を取り、デフォルト値はnpmのバージョンによって異なる。

NPM Available Default; Converting
5 1 1
6 1 1
7 1,2,3 2; 1 -> 2, 2 -> 2, 3 -> 3
8 1,2,3 2; 1 -> 2, 2 -> 2, 3 -> 3
9 1,2,3 3; 1 -> 3, 2 -> 2, 3 -> 3

NPM 6以下では1種類しかない

npm version 6以下ではlockfile-versionは1固定になる。

NPM 7,8では2以上に変換される

npm version 7ではlockfile-versionに3が導入された。より高速にパッケージのインストールが行える形式になっている。

2は1から3への移行のために両方の情報を含んだ形式となっていてファイルサイズが大きくなっている。

package-lock.jsonがない、もしくはlockfile-versionが2以下の場合は、lockfile-versionが2のファイルが生成される。

NPM 9ではデフォルト値が3に変更された

npm version 9ではデフォルト値とlockfile-versionが1だったときの変換先が3に変更された。