SuperAPI AI 工具集

jsharpener

编程与开发

查看项目

更新于 10-16 09:31

技能介绍

JSharpener 是基于 TypeScript Compiler API 的 JavaScript/TypeScript 静态分析工具,用于构建调用图、识别未使用代码、检测循环依赖并辅助重构决策。它通过 CLI 使用,命令入口为 node "C:\Users\matthew.heath\Git\JSharpener\dist\cli\index.js" <command>;若可执行文件不可用,可在源码目录执行 npm install 与 npm run build 重建。

主要能力:analyze 输出文件数、函数数、类数及导入导出统计;callgraph 生成 Graphviz DOT 格式调用图,支持 --function 聚焦函数、--reverse 查看调用者、--depth 限制深度、--module-level 查看模块级依赖;treeshake 检测未使用的导出、函数、变量与导入(死代码检测),可用 --entry 指定入口点,--format json 输出 JSON;deps 分析依赖,支持 --circular 仅显示循环依赖、--external 分析外部包使用。通用选项包括 -o/--output、--include、--exclude、--config。

配置:项目根目录可放 jsharpener.json,字段有 include、exclude、entryPoints、followDynamicImports、includeExternalDeps、detectCircular。调用图可用 dot -Tsvg 或 dot -Tpng 转换,也可上传 DOT 文件到 GraphvizOnline 查看。

适用场景:重构前清理死代码、理解代码调用流程、代码评审准备、CI 中检查未使用代码与循环依赖、生成模块级依赖图辅助架构理解。

限制:方法调用通过对象实例时可能无法完整追踪;动态 import() 支持不完整;部分模块解析边界情况可能未处理;变量使用追踪较简化;JSX/TSX 支持有限;使用 eval() 或动态生成代码不分析。性能上可用 include/exclude 缩小范围、排除测试文件、使用 --module-level、限制 --depth、指定入口点。项目无需编译即可分析,使用宽松设置,语法错误可能导致文件被跳过。不支持的功能、收费、平台等信息暂未提供。