Tiny Online Tools logoTiny Online Toolssearchツールを検索…grid_viewすべてのツール
ホームchevron_rightリバースエンジニアリングツールchevron_rightWebpackバンドルインスペクターWebpackバンドルインスペクター

Webpackバンドルインスペクター

AST形状によりwebpackのランタイムブートストラップ、モジュールマップ、chunk-pushメタデータを検出し、各モジュールの実際のソースを表示します。ファイルがwebpack出力でない場合はその旨を明確に伝えます。

バンドルの入力元コードを貼り付けファイルをアップロード

関連ツール

JSバンドル依存関係ビジュアライザー

JSバンドル依存関係ビジュアライザー

webpack・Rollup・esbuild・Vite製バンドル内のモジュール境界を検出し、どのモジュールがどれに依存しているかを可視化します。テキスト推測ではなく実際のAST形状照合で判定します。

Source Map サイズ分析

Source Map サイズ分析

.mapファイルを使い、バンドルのバイト数をそれを生み出した元のソースファイルやフォルダに割り当てます — 何が実際に容量を占めているかがわかります。

ELFファイルインスペクター

ELFファイルインスペクター

LinuxやUnixのELFバイナリを解析します。ヘッダー、セクション、セグメント、シンボル、共有ライブラリの依存関係をブラウザ上で確認できます。

JavaScript デッドコード解析

JavaScript デッドコード解析

JSバンドルを貼り付けると、ファイル内のどこからも静的に参照されていないトップレベル関数を検出します——到達可能性のヒューリスティック分析であり、確実な判定ではありません。

画像ピクセル化

画像ピクセル化

画像をピクセル化してレトロ 8-bit 風または機密内容のマスクに。ブロックサイズ調整可、ブラウザ内動作。

ランダムブール値生成ツール

ランダムブール値生成ツール

確率と件数を設定して true/false のランダムリストを生成。

画像グリッド作成

画像グリッド作成

複数の画像を 1 つのグリッドレイアウトに並べられます。

apps

もっと見る

無料オンラインツールの全コレクションを見る。

このツールが確認すること

ウェブの多くはいまだにwebpack出力を配信しており、その構造は単独で理解する価値があります——JSバンドル依存関係ビジュアライザーが描く、バンドラーに依存しない一般的な依存関係グラフとは別に。このツールはwebpackバンドルの構成要素を特に探します。

  • ランタイムブートストラップ — すべてのwebpackビルドが持つ__webpack_require__形状の関数で、モジュールを呼び出す正確な仕組み(modules[moduleId].call(module.exports, module, module.exports, require))によって検出します。文字通りの名前を探すわけではありません。この仕組みは識別子が完全にリネームされても残るため、すべての名前が圧縮されたビルドでも一致します。
  • モジュールマップ — 古典的なオブジェクト形式({0: fn, 1: fn, ...})、または新しいwebpackバージョンが標準で使う配列形式([fn, fn, ...])のどちらか。
  • chunk-pushメタデータ — コード分割されたビルドの場合、(self.webpackChunkXxx = self.webpackChunkXxx || []).push([[chunkIds], {modules}, runtime])呼び出しから、チャンク名とIDを抽出します。
  • ランタイムヘルパー.m(モジュールマップ)、.c(モジュールキャッシュ)、.d(define getter)、.o(hasOwnProperty)、.n(デフォルトエクスポートgetter)、.s(エントリーモジュールID)、.p(公開パス)のどれが存在するか。

リストから任意のモジュールを選ぶと、構文ハイライト付きパネルで実際のソースを確認できます——何も実行せず、webpack自身がそのモジュールの周りに巻いたテキストそのものです。

webpackでない場合

ランタイムもモジュールマップも見つからない場合、ツールは推測を強行せず**「これはwebpack出力には見えません」**と伝え、可能であれば手軽で正直なヒントを添えます——//# sourceMappingURL=コメントの存在、またはファイルがESモジュールとして解析されること(Rollup、esbuild、Vite出力によく見られます)。

既知の制限

webpackを通した後、ランタイム自身のプロパティ名までリネームするような、より積極的な2回目の圧縮を経たバンドルは、.call()形状チェックをすり抜けて非webpackと報告される場合があります。これは意図的なトレードオフです——実際には存在しないモジュールマップを捏造するより、まれな見逃しの方が良いという判断です。

プライバシー

すべては実際のJavaScriptパーサー(acorn)によってブラウザ内で処理されます。貼り付けまたはアップロードしたファイルがどこかに送信されることはありません。