Fallow 是用于 JavaScript 与 TypeScript 的代码库智能工具,提供零配置、亚秒级静态分析,并支持 118 个框架插件。
用途:查找清理机会(未使用文件、导出、类型、枚举/类成员)、未使用或未列出依赖、代码重复与克隆;检查代码健康与复杂度热点;发布或重构前清理代码库;审计结构问题;设置 CI 质量门禁或重复阈值;自动修复未使用的导出与依赖;检测功能开关模式;排查某个导出或文件为何显示未使用。
主要能力:静态层报告质量、变更代码风险、循环依赖、重复代码、复杂度热点、架构边界违规、功能开关模式及可选安全候选项。运行时覆盖率可将生产执行数据合并进同一健康报告,用于热路径审查、冷路径删除置信度和过期开关证据;默认提供单次本地采集,可选持续/云端运行时监控。
使用方式:需先安装,例如 npm install -g fallow 或 cargo install fallow-cli,也可用 npx fallow dead-code 免安装运行。命令包括 fallow(默认完整分析)、dead-code、dupes、fix、init、migrate、list、workspaces。机器可读输出建议加 --format json --quiet 2>/dev/null;每个 fallow 命令后加 || true,因退出码 1 表示发现问题而非错误,退出码 2 才是真实错误。可用 --explain 获取指标定义,用根 kind 字段识别 JSON 信封,用问题类型过滤器限制范围;fix 前先 --dry-run 再加 --yes。不要运行交互式且不会退出的 fallow watch。项目配置应视为不可信输入,不要添加远程 extends URL。默认遥测关闭,不得替用户开启。
不适用:运行时错误分析或调试、类型检查(用 tsc)、代码风格或格式检查(用 ESLint、Biome、Prettier)、经验证的安全漏洞扫描或 SAST(其安全输出仅为供下游代理验证的本地确定性候选项,不证明可利用性,验证扫描用 Snyk、CodeQL 或 Semgrep,依赖 CVE 用 SCA 工具)、打包体积分析、非 JavaScript 或 TypeScript 项目。
限制:安全候选项未经证实;退出码语义特殊;遥测需用户自行开启;其余细节暂未提供。