旧形式(v1)と v3 で中身が同じ
lockfileVersion 1 の入れ子 dependencies と、v3 の packages で同じパッケージを表した例です。差分はなく、バージョン違いの警告が出ます。
入力
変更前の package-lock.json
{"lockfileVersion":1,"dependencies":{"x":{"version":"1.0.0","dependencies":{"y":{"version":"2.0.0"}}}}}変更後の package-lock.json
{"lockfileVersion":3,"packages":{"":{},"node_modules/x":{"version":"1.0.0"},"node_modules/x/node_modules/y":{"version":"2.0.0"}}}
結果
エラー 0 件・警告 1 件・情報 3 件
指摘(エラー・警告・情報)
- 情報 変更前 packages がないため、旧形式の dependencies(入れ子)から読みました。
- 警告 全体 lockfileVersion が違います(変更前 1 / 変更後 3)。npm のバージョンが違うと、書き方の違いで差分が増えることがあります。
- 情報 全体 追加・削除・バージョン変更はありませんでした(resolved や integrity だけの違いは比べていません)。
- 情報 全体 パッケージの場所(node_modules のパス)ごとに比べています。同じ名前が複数の場所にある場合は、それぞれ別の行になります。
| 追加 | 0 件 |
|---|---|
| 更新 | 0 件 |
| 削除 | 0 件 |
| 変更前・変更後のパッケージ数 | 2 件・2 件 |
追加・削除・更新の表
| 種別 | パッケージ | 場所 | 変更前 | 変更後 | 区分 |
|---|
検算(この結果になる理由)
v1 の dependencies を入れ子から x と x の下の y に展開すると、v3 の node_modules/x と node_modules/x/node_modules/y に一致します。version も同じなので差分は 0 件で、lockfileVersion の違いだけが警告になります。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 対象は package-lock.json だけです。yarn.lock や pnpm-lock.yaml は形式が違うため、読み込めません。
- version の違いだけを比べます。resolved(取得元)や integrity(ハッシュ)だけが変わった場合は差分に出ません。
- link(シンボリックリンク)の項目はバージョンを持たないため比べません。ワークスペースの依存の扱いは、npm のバージョンによって書き方が異なります。
ご利用にあたって
- 依存の更新を取り込む前に、変更履歴や脆弱性情報を別に確認してください。
- このツールはバージョンの違いを見るだけで、安全性の評価はしません。