Agent Skills
返回列表
💻

Knip 未使用代码与依赖查找器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/knip-unused-code-dependency-finder。

技能介绍

问题:项目里慢慢堆积的死代码

随着项目不断迭代,JavaScript/TypeScript 代码库中很容易残留三类"隐形负担":不再被任何模块引用的文件、已安装却无人 import 的依赖、以及导出后从未被消费的符号。它们不会引发编译错误,却会持续撑大构建产物、拖慢安装和代码审查,并扩大依赖的攻击面——一个不再使用的包即使爆出安全漏洞,也可能因为"看起来还在用"而被保留下来。人工排查这类问题既耗时又容易遗漏,在 monorepo 或依赖关系复杂的项目里尤其明显。

工作原理

该技能通过运行 Knip 来扫描项目,并输出未使用代码与依赖的清单,核心能力包括:

  • 未使用文件:找出没有被任何入口或模块引用的文件
  • 未使用依赖:列出已在 package.json 中声明但从未被导入的包
  • 未使用导出:识别模块中从未被消费的 export

Knip 会结合项目的入口配置、构建设置与类型信息进行推断,而不是简单的全局文本搜索,因此在配置合理的项目中结果通常比较可靠。拿到清单后,可以逐个确认并删除文件、移除对应的依赖声明,从而缩小 bundle 体积、减轻维护负担。

适用边界与注意事项

  • Knip 的结论依赖入口与构建配置的完整性;配置缺失或过于宽松时,可能误报"未使用"。
  • 对于动态导入、反射式引用或运行时按需加载的代码,静态分析未必能完全识别。
  • 该技能资料中未能自动提取到经过验证的安装与使用说明,建议先阅读上游仓库,再决定是否在敏感工作流中使用。

使用场景

  • 接手一个历史项目,需要找出不再被引用的源文件并清理目录结构
  • 准备发版前审查 package.json,定位并移除从未被 import 的依赖包
  • 审查大型库的导出 API,删除从未被消费的 export 以精简公共接口
  • 处理 Monorepo,逐个包检查未使用文件与依赖,降低维护负担

适合人员

  • 前端工程师,需要在发布前确认并清理项目中的未使用文件与依赖
  • TypeScript 库作者,希望精简导出 API 并移除无人调用的符号
  • 技术负责人,负责缩减构建产物体积并降低依赖供应链风险
  • 开发团队,接手遗留代码库后想系统性排查长期积累的死代码