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

npm installで作成されるpackage-lock.jsonlockfile-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-version1固定になる。

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

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

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

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

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

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