npmのバージョンによってロックファイルのフォーマットが異なる
ロックファイルのバージョンは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
に変更された。