SuperAPI AI 工具集

knip

编程与开发

查看项目

更新于 10-15 17:19

技能介绍

用途:运行 knip 找出并移除代码库中未使用的文件、依赖和导出,用于清理死代码与无用依赖。

主要能力:knip 报告可分类为未使用文件(未被任何地方导入)、未使用 dependencies、未使用 devDependencies、未使用导出(导出但未被别处导入的函数/变量)、未使用类型(导出但未使用的类型)。

使用方式:先检查是否可用,运行 npx knip --version 测试;若失败或很慢,检查 package.json 的 devDependencies 是否含 knip;未本地安装则用 npm install -D knip(或按 lockfile 使用 pnpm/yarn 等价命令)。若不存在 knip.json 或 knip.jsonc 配置且误报较多,可依据 package.json 中检测到的框架创建最小配置。执行 npx knip 获取初始报告。

清理策略:高置信度可直接删除的包括明显内部的未使用导出、未使用类型导出、未使用依赖(从 package.json 移除)、明显孤立的未使用文件(非入口、非配置文件);可用 --fix --allow-remove-files 自动修复,或手动删除/编辑。需先询问的包括可能是入口或被动态导入的文件、可能属于公共 API 的导出(index.ts、lib 导出)、可能通过 CLI 或 peer 依赖使用的依赖,以及 src/index、lib/ 或名称含 public、api 的路径;删除前用 AskUserQuestion 澄清。

工作流:运行 knip 并捕获完整输出;将每个问题归类为可自动删除或需澄清;对不确定项一次性批量询问;执行所有删除(用 Edit 移除导出,用 Bash 删除文件/依赖);重新运行 knip 验证;重复直到无问题或仅剩有意忽略项。

常用命令:npx knip;npx knip --production(仅生产,忽略测试文件);npx knip --fix(自动修复安全项);npx knip --fix --allow-remove-files(含文件删除);npx knip --reporter json(JSON 输出便于解析)。

限制与注意:若存在 knip 配置需遵守其 ignore 模式;注意 monorepo 可能需要 --workspace 标志;某些框架需在配置中启用插件;每批修复后重新运行以捕获新暴露的未使用代码。