このツールが実際に調べていること
このツールは acorn を使ってJavaScriptを解析し、参照グラフを構築します。トップレベルで宣言された関数(またはトップレベルの const x = function(){} / const x = () => {})は1つのノードになり、その名前が識別子として他の場所に現れるたびにエッジが追加されます。次に、ファイルの読み込み時に無条件に実行されるコード——トップレベルに直接書かれた文、即時実行関数式(IIFE)の本体、module.exports / exports.x / window.x / globalThis.x への代入、そして自分で入力したエントリーポイント名——をルートとして、そこから到達可能な関数を計算します。ルートから推移的に到達できるものはすべて保持され、残ったものが報告されます。
結果を信じる前に必ず読んでください
このツールが**「未使用の可能性」**と分類した関数でも、実際には使われている場合があります。静的解析では次のようなケースを見抜けません。
- 動的ディスパッチ —
obj[計算されたキー]()、table[key]()のように、プロパティ名が実行時にしか決まらない場合。 evalとnew Function(...)— 文字列から組み立てられたコードはAST走査には見えません。- リフレクション — 実行時に動的に選ばれた参照に対する
fn.call(...)やfn.apply(...)、あるいはObject.keys(obj).forEach(k => obj[k]())。
すべての結果は*「静的な参照が見つかりませんでした」*という表現にとどめており、断定はしません。何かを削除する前に、特に手作業での確認が必要な手がかりとして扱ってください。判定として鵜呑みにしないでください。
使い方
.js ファイルの内容をエディタに貼り付けるか読み込んでください。バンドルの本当のエントリー関数名(HTMLから呼ばれる関数、あるいはフレームワークが代わりに呼び出す関数)がすでにわかっている場合は、エントリーポイント欄に入力しておくと、ファイル内のどこからも名前で参照されていなくても、その関数と推移的に触れるすべてが到達可能として固定されます。
サマリーにはトップレベル関数の総数、到達可能な数、静的参照が見つからない数が表示されます。各検出結果には関数名と行番号が示されます。折りたたみ可能な別のリストには、到達可能な関数の全体と、それぞれの簡単な理由(エントリーポイント、export、IIFE内での呼び出し、あるいは別の到達可能な関数内で見つかった参照)が表示されます。
貼り付けた内容がブラウザの外に送信されることはありません。
Tiny Online Tools







