SuperAPI AI 工具集

fix-knip-unused-exports

测试与质量

查看项目

更新于 10-15 21:40

技能介绍

用途:当 npm run knip 报告“Unused exports”时,按违规类别采取不同修复策略。不适用情形:导出被其他文件的非测试生产代码使用,说明问题在别处。

主要能力与用法:先运行 npm run knip 定位违规,再用 rg "myFunction" 全仓库搜索,并用 rg "myFunction" --glob '!**/.test.' 排除测试文件判断生产消费者。分类处理:测试专用导出(同文件与测试使用)抽取到新文件;失效 barrel 再导出(index.ts 再导出但生产代码走相对路径或子路径)从 barrel 移除;仅内部使用导出去掉 export 关键字;无调用者的死代码删除导出。

抽取测试专用导出时需规划:移动哪些函数、私有辅助与常量;共享辅助是否需从新文件导出;单导出文件需按 filename-match-export 规则命名;检查测试文件与循环依赖;常量需符合 constants-file-organization 规则。抽取后重跑 knip,注意链式违规。

移除跨包测试依赖的 barrel 再导出时,可在 package.json 增加子路径导出,如 "./feature": "./src/feature/index.ts",并更新测试导入路径。

验证:在受影响包运行 npm run knip、npm run typecheck、npm run test、npm run lint。

限制与注意:Knip 忽略测试文件;ignoreIssues 只抑制警告,不使导出变为已使用;barrel 再导出不计为源导出使用;includeEntryExports 为 true 时入口文件导出也会被检查。不要随意加 ignoreIssues,不要为减少导出而合并文件,不要移除测试需要的 export,不要制造循环导入。