这个工具到底在检查什么
本工具使用 acorn 解析你的 JavaScript 代码,并构建一张引用图:每个顶层声明的函数(或顶层的 const x = function(){} / const x = () => {})成为图中的一个节点,其名称在其他地方作为标识符出现的每个位置都成为一条边。然后计算哪些函数可以从一组根节点到达——根节点是文件加载时无条件执行的代码:直接位于顶层的语句、立即执行函数表达式(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 调用的那个,或者由某个框架代为调用的那个),把它填入入口点字段,这样即使文件中没有任何地方按名称引用它,它以及它可传递触及的一切也会被锚定为可达。
摘要区会显示顶层函数总数、其中有多少可达,以及有多少没有静态引用。每条发现都会列出函数名和所在行号。另有一个可折叠的独立列表,展示完整的可达集合,并为每个函数给出一个简短原因——入口点、导出、在 IIFE 内的调用,或在另一个可达函数内部找到的引用。
你粘贴的任何内容都不会离开你的浏览器。
Tiny Online Tools







