npm / pnpm / Yarn ロックファイル解析

認識された npm、pnpm、Yarn Classic のロックファイルエントリを読み取り、解決済みパッケージバージョンの一覧を表示し、複数バージョンで現れるパッケージを特定します。

ブラウザ内でローカルに実行
このツールの処理はすべてブラウザ内で行われます。VoriTools が入力内容をアップロード・保存したり、外部 API に送信したりすることはありません。
ロックファイルPaste package-lock.json, pnpm-lock.yaml, yarn.lock, or an excerpt.
解決済みパッケージ

ロックファイルを解析する方法

このページは package-lock.json、pnpm-lock.yaml、yarn.lock をブラウザー内で読み取り、そのロックファイルが何を解決しているかを表示します。固定しているエントリ数、含まれる名前の数、そして複数のバージョンに固定されている名前です。インストールは行わず、レジストリにも接続しません。

ファイル全体または一部を貼り付けて「ローカルで解析」を押します。レポートには検出した形式、解決済みエントリ数、重複した名前が表示され、表には各エントリの名前・バージョン・取得元が並びます。「コピー」で JSON レポートをクリップボードに取り出せます。

  1. package-lock.json、pnpm-lock.yaml、yarn.lock のいずれかを開いて貼り付けるか、調べたい抜粋を貼り付けます。
  2. 「ローカルで解析」を押します。
  3. 3 つの指標 (形式、解決済みエントリ、重複バージョン) を確認します。
  4. 複数バージョンに解決される名前の警告を確認し、表で該当箇所を探します。
  5. 必要なら「コピー」で JSON レポートを取り出し、「クリア」で最初からやり直します。

ロックファイルレポートが数えるもの

認識する 3 つの形式

npm のロックファイルは lockfileVersion、packages、dependencies の各フィールドから判別します。バージョン 2 と 3 は packages マップを読み、node_modules/ を含むキーをそれぞれ 1 エントリにします。ルートプロジェクトのエントリ ("") は数えず、node_modules/foo/node_modules/bar のような入れ子のパスは bar として表示します。バージョン 1 は dependencies マップを読みます。

pnpm のロックファイルは lockfileVersion または packages セクションから判別し、/名前@バージョン のキーをそれぞれ 1 エントリにします (/@babel/core@7.24.0 のようなスコープ名も含みます)。Yarn クラシックはセレクターのブロックから判別します。version 行はキーに並ぶ各セレクターと組み合わされるため、2 つの範囲を 1 つのバージョンに対応させる行は 2 エントリになり、"@scope/pkg@^0.4.0" のような引用符付きセレクターは名前を取り出す前に引用符を外します。

エントリ、重複、レポート

1 エントリは 1 つの解決であり、1 つのパッケージではありません。npm ではツリー内のパス、Yarn ではセレクターなので、2 つの階層に入った依存は 2 回現れます。重複の判定は名前ごとにバージョンを見ます。2 つの異なるバージョンに固定された名前は報告し、2 つのセレクターが同じバージョンに解決する場合は報告しません。

JSON レポートには format、resolvedPackages、uniqueNames、namesWithMultipleVersions が入るため、ブランチ間で比較できます。表は最大 500 行を表示し、それより多い場合はその旨を表示します。指標とレポートは常に全エントリを数えます。

このページで分からないこと

何も取得しません。npm、pnpm のレジストリ、Yarn のいずれにも接続しないため、バージョンが存在するか、整合性ハッシュが一致するか、パッケージが非推奨やセキュリティ勧告の対象かを確認できません。version フィールドのないエントリは未解決として表示され、手で編集された、または別のツールが書いたロックファイルであることを示します。

壊れた JSON は解析を止め、ヒントと失敗した位置を表示します。pnpm のロックファイルではない YAML や、パッケージのセクションが見つからない JSON も、空の表ではなく同じメッセージで応答します。解析前にコピーを押した場合は、空のクリップボードではなくヒントを返します。

最近使ったツール: