Coding-Dev-Tools/deadcode
GitHub: Coding-Dev-Tools/deadcode
一个用于检测和移除 TypeScript/React/Next.js 项目中死代码的 CLI 工具。
Stars: 3 | Forks: 1
# 死代码
**检测并移除 TypeScript/React/Next.js 项目中未使用的导出、死路由、孤立的 CSS 以及未引用的组件。**
[](https://pypi.org/project/deadcode/)
[](https://pypi.org/project/deadcode/)
[](https://github.com/Coding-Dev-Tools/deadcode/blob/main/LICENSE)
[](https://github.com/Coding-Dev-Tools/deadcode/actions/workflows/test.yml)
[](https://www.opensourcealternative.to/project/deadcode)
[](https://www.libhunt.com/r/Coding-Dev-Tools/deadcode)
[](https://github.com/uhub/awesome-python)
**为什么选择 DeadCode?**
## 快速开始
```
pip install deadcode
# 扫描当前项目
deadcode scan
# 扫描特定项目
deadcode scan -p /path/to/project
# 预览可移除的死代码
deadcode remove --dry-run
# 移除已确认的死代码
deadcode remove
```
## 命令
### `deadcode scan`
扫描 TypeScript/React/Next.js 项目中所有类别的死代码。
```
deadcode scan # Scan current directory
deadcode scan -p /path/to/project # Scan specific project
deadcode scan --json-output # Machine-readable JSON
deadcode scan -c unused_export # Filter by category
deadcode scan -i "generated/" # Ignore paths
```
### `deadcode remove`
在预览后移除死代码。务必先使用 `--dry-run` 进行预览。
```
deadcode remove --dry-run # Preview changes (no writes)
deadcode remove # Apply removals
deadcode remove -c orphaned_css # Remove only orphaned CSS
```
### `deadcode stats`
快速概览项目中的死代码。
```
deadcode stats
```
## 类别
| 类别 | 描述 | 示例 |
| ------------------ | ----------------------------------------- | ------------------------------------------------------------ |
| `unused_export` | 导出的名称未在其他地方导入 | `export function oldHelper()` 没有任何使用者 |
| `dead_route` | Next.js 路由没有内部链接 | `app/legacy/page.tsx` 不再被导航链接 |
| `orphaned_css` | CSS 类未在 JSX 中引用 | `styles.module.css` 中的 `.oldClass` 没有任何使用处 |
| `unreferenced_component` | 定义的 React 组件但从未导入 | 一个没有导入点的 `` 组件 |
## 功能特点
- **未使用导出检测** — 找出项目中已导出但从未导入的函数、类型、类、接口、枚举和常量
- **死路由检测** — 检测 Next.js App Router 项目中无法访问的页面组件
- **孤立 CSS 检测** — 找出已定义但从未在 TSX/JSX 文件中引用的 CSS module 类
- **安全自动移除** — `--dry-run` 预览模式精确显示在执行更改前将被删除的内容
- **全项目 AST 分析** — 基于正则表达式的扫描覆盖整个代码库的导出/导入模式、路由检测、CSS 类使用情况和组件引用
- **Monorepo 支持** — 通过忽略模式高效处理大型项目
- **CI 集成** — 为自动化流水线和门控提供 JSON 输出
## 忽略模式
```
deadcode scan -i "generated/" -i "**/*.generated.ts"
```
默认忽略:`node_modules/`, `.git/`, `.next/`, `dist/`, `build/`, `public/`, `static/`
## CI/CD 集成
```
# 为CI生成报告
deadcode scan --json-output > deadcode-report.json
# 若发现任何死路由则CI失败
deadcode scan -c dead_route --fail 1
# 若发现总数超过阈值则CI失败
deadcode scan --fail 10
# 跟踪死代码随时间变化的趋势
deadcode scan --json-output > baseline-$(date +%Y-%m-%d).json
```
## 配置 (.deadcode.yml)
在你的项目根目录创建一个 `.deadcode.yml` 文件:
```
# .deadcode.yml
ignore:
- "generated/"
- "**/*.generated.ts"
- "src/legacy/"
categories:
- unused_export
- dead_route
- orphaned_css
- unreferenced_component
# 若发现数大于等于此数值则返回退出码1(用于CI拦截)
fail_threshold: 10
```
CLI 标志会覆盖配置文件的设置。
## 存储
- `.deadcode.yml` — 项目配置(忽略模式、类别)
- `deadcode-baseline.json` — 保存的扫描结果,用于趋势跟踪
## 路线图
- [ ] VS Code 扩展,内联装饰显示死代码
- [ ] ESLint 插件集成,支持自动修复
- [ ] Webpack/Rollup 打包分析钩子
- [ ] MCP 服务器,用于 AI 辅助清理
- [ ] 带缓存的增量扫描
- [ ] 用于 PR 评论的 GitHub Actions 注释器
## 许可证
MIT — 详情见 [LICENSE](LICENSE)
标签:React, SOC Prime, Syscalls, TypeScript, 云安全监控, 代码优化, 代码分析, 代码清理, 凭证管理, 子域名暴力破解, 孤立CSS, 安全插件, 开发工具, 未使用导出, 未引用组件, 死代码检测, 死路由, 自动化检测, 逆向工具, 静态分析, 项目清理