
rev-dep v3.0.0
面向现代 JavaScript 和 TypeScript 代码库的依赖分析与优化工具包。借助极速 CLI 强制执行依赖图卫生,并移除未使用的代码。
Rev-dep
面向现代 JavaScript 和 TypeScript 代码库的依赖分析与优化工具包。
通过极速 CLI 强制执行依赖图规范并移除未使用代码。
关于 📣
随着代码库规模扩大,维护依赖关系的心智模型变得不可能。Rev-dep 是一款高速静态分析工具,旨在为大规模 JS/TS 项目强制执行架构完整性和依赖规范。
将 Rev-dep 视为依赖图的高速 linter。
将多个缓慢工具中碎片化、串行的检查整合到一个高性能引擎中。 Rev-dep 在一次并行化执行中运行全套治理检查——包括循环依赖、孤立文件、模块边界等。它使用 Go 实现,绕过了基于 Node 的分析性能瓶颈,可在约 150ms 内审计 500k+ 行代码的项目。查看性能对比
自动化代码库治理
Rev-dep 超越了被动扫描,实现了主动强制执行,回答(并在 CI 中因之失败)以下难题:
- 架构完整性:“我的‘Domain A’是否非法导入了‘Domain B’?”
- 死代码与臃肿:“这些文件是否不可达,或者这些
node_modules是否未使用?” - 重构安全性:“哪些入口点实际使用了这个工具函数,是否存在循环链?”
- 工作区规范:“我的导入是否一致,所有依赖是否都已声明?”
Rev-dep 作为 CI 的高速守门人,确保你的依赖图保持精简,架构在迭代过程中保持完整。
为什么选择 Rev-dep?🤔
🏗️ 一流的 monorepo 支持
专为现代工作区(pnpm、yarn、npm)设计。Rev-dep 原生解析 package.json 的 exports/imports 映射、TypeScript 别名,并跨包边界追踪依赖。
🛡️ 基于配置的代码库治理
超越被动扫描。使用配置引擎强制执行模块边界和导入约定。在单次并行化执行中运行全套规范检查(循环依赖、孤立文件、未使用模块等),作为 CI 的高速守门人。
🔍 探索工具包
CLI 工具包,帮助调试文件间依赖问题。理解文件间的传递关系并修复问题。
⚡ 为速度与 CI 效率而生
使用 Go 实现,消除了基于 Node 分析的性能负担。通过并行处理文件,Rev-dep 的执行速度比替代方案快 17 倍至 90 倍,显著降低 CI 成本和开发者等待时间。
Rev-dep 可在约 150ms 内审计 500k+ 行代码的项目。 查看性能对比
功能 🚀
治理与维护(基于配置)🛡️
使用 rev-dep config run 为所有包一次性执行多项检查。
可用检查:
moduleBoundaries- 强制执行模块间的架构边界。importConventions- 强制执行导入风格约定(提供自动修复)。unusedExportsDetection- 检测从未使用的导出(提供自动修复)。orphanFilesDetection- 检测死代码/孤立文件(提供自动修复)。unusedNodeModulesDetection- 检测已声明但未使用的依赖。missingNodeModulesDetection- 检测 package json 中缺失的导入。unresolvedImportsDetection- 检测无法解析的导入请求。circularImportsDetection- 检测循环导入。duplicatedCodeDetection- 检测复制粘贴的代码(重复块和 JSX 元素)。devDepsUsageOnProdDetection- 检测生产代码中使用的开发依赖。restrictedImportsDetection- 阻止从选定入口点导入被拒绝的文件/模块。restrictedImportersDetection- 白名单指定哪些入口点可以传递到达一组文件/模块。restrictedDirectImportersDetection- 约束哪些文件可以直接导入一组文件/模块(非传递)。
探索性分析(基于 CLI)🔍
使用 CLI 命令进行临时依赖探索:
entry-points- 发现项目入口点。files- 列出给定入口点的依赖树文件。resolve- 追踪文件间的依赖路径(谁导入了这个文件)。imported-by- 列出文件的直接导入者。circular- 列出循环依赖链。duplicated-code- 查找复制粘贴的代码块和 JSX 元素。node-modules- 检查used、unused、missing和installed的 node 模块。lines-of-code- 统计有效代码行数。unresolved- 列出无法解析的导入,按文件分组。list-cwd-files- 列出 CWD 中的所有源代码文件debug- 检查 rev-dep 内部解析、解析和发现的内容。
安装 📦
本地安装以设置项目检查脚本``` yarn add -D rev-dep
## 功能特性
- **多协议支持**:HTTP/HTTPS、SOCKS4、SOCKS5 代理
- **多种输入格式**:支持从文件、URL 或标准输入读取代理
- **并发检查**:可配置线程池,实现快速验证
- **地理位置过滤**:按国家/地区代码过滤代理
- **协议过滤**:仅检查特定协议类型
- **超时控制**:可配置的连接和响应超时
- **详细输出**:显示响应时间、地理位置和匿名级别
- **导出选项**:将有效代理保存到文件
- **彩色输出**:清晰、易读的终端输出
## 安装
### 从源码安装
```bash
git clone https://github.com/yourusername/proxychecker.git
cd proxychecker
go build -o proxychecker ./cmd/proxychecker
使用 go install
go install github.com/yourusername/proxychecker/cmd/proxychecker@latest
使用方法
基本用法
# 检查文件中的代理
./proxychecker -f proxies.txt
# 从 URL 检查代理
./proxychecker -u https://example.com/proxies.txt
# 从标准输入检查代理
cat proxies.txt | ./proxychecker
高级用法
# 使用 50 个并发线程检查代理
./proxychecker -f proxies.txt -c 50
# 仅检查美国代理
./proxychecker -f proxies.txt --country US
# 仅检查 SOCKS5 代理
./proxychecker -f proxies.txt --protocol socks5
# 将有效代理保存到文件
./proxychecker -f proxies.txt -o valid_proxies.txt
# 组合多个选项
./proxychecker -f proxies.txt -c 100 --country US,CA,GB --protocol http,https -o valid.txt -v
命令行选项
| 选项 | 简写 | 描述 | 默认值 |
|---|---|---|---|
--file | -f | 包含代理的文件路径 | |
--url | -u | 包含代理的 URL | |
--output | -o | 保存有效代理的输出文件 | |
--concurrency | -c | 并发检查数量 | 10 |
--timeout | -t | 连接超时(秒) | 10 |
--country | 按国家/地区代码过滤(逗号分隔) | ||
--protocol | 按协议过滤(http、https、socks4、socks5) | ||
--verbose | -v | 启用详细输出 | false |
--help | -h | 显示帮助信息 |
代理格式
ProxyChecker 支持多种代理格式:
# 基本格式
192.168.1.1:8080
# 带协议
http://192.168.1.1:8080
socks5://192.168.1.1:1080
# 带认证
user:[email protected]:8080
http://user:[email protected]:8080
# 带注释
192.168.1.1:8080 # 我的代理
输出示例
ProxyChecker v1.0.0
正在检查 100 个代理,并发数 10...
[1/100] 192.168.1.1:8080 ✓ HTTP | 美国 | 123ms | 透明
[2/100] 192.168.1.2:1080 ✓ SOCKS5 | 德国 | 456ms | 匿名
[3/100] 192.168.1.3:3128 ✗ 连接超时
[4/100] 192.168.1.4:8080 ✓ HTTPS | 英国 | 234ms | 精英
检查完成!
总计:100 | 有效:45 | 无效:55
平均响应时间:345ms
开发
项目结构
proxychecker/
├── cmd/
│ └── proxychecker/
│ └── main.go
├── internal/
│ ├── checker/
│ │ ├── checker.go
│ │ └── checker_test.go
│ ├── config/
│ │ └── config.go
│ ├── parser/
│ │ ├── parser.go
│ │ └── parser_test.go
│ └── types/
│ └── types.go
├── pkg/
│ └── geoip/
│ └── geoip.go
├── go.mod
├── go.sum
└── README.md
运行测试
# 运行所有测试
go test ./...
# 运行测试并生成覆盖率报告
go test -cover ./...
# 运行基准测试
go test -bench=. ./...
构建
# 为当前平台构建
go build -o proxychecker ./cmd/proxychecker
# 为 Linux 构建
GOOS=linux GOARCH=amd64 go build -o proxychecker-linux ./cmd/proxychecker
# 为 Windows 构建
GOOS=windows GOARCH=amd64 go build -o proxychecker.exe ./cmd/proxychecker
# 为 macOS 构建
GOOS=darwin GOARCH=amd64 go build -o proxychecker-macos ./cmd/proxychecker
贡献
- Fork 本仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开 Pull Request
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
免责声明
本工具仅供教育和安全研究目的使用。用户有责任遵守所有适用的法律和法规。作者不对本软件的任何滥用行为负责。
致谢
支持
- 通过 GitHub Issues 报告问题
- 通过 GitHub Discussions 提问
- 关注 @yourusername 获取更新``` npm install -D rev-dep
## 功能特性
- **多协议支持**:HTTP/HTTPS、SOCKS4、SOCKS5 代理
- **并发扫描**:可配置的线程池,实现快速扫描
- **智能验证**:通过实际请求测试代理连通性
- **地理位置查询**:获取代理服务器的国家/地区信息
- **灵活输出**:支持 JSON、CSV 和纯文本格式
- **代理链**:支持通过多个代理进行链式连接
- **自定义请求头**:可配置的 HTTP 请求头
- **超时控制**:可调节的连接和读取超时时间
- **重试机制**:自动重试失败的请求
- **日志记录**:全面的日志记录选项
## 安装
### 从源码安装
```bash
git clone https://github.com/yourusername/proxy-checker.git
cd proxy-checker
pip install -r requirements.txt
使用 pip 安装
pip install proxy-checker
使用方法
基本用法
python proxy_checker.py -f proxies.txt
高级用法
python proxy_checker.py \
--file proxies.txt \
--threads 100 \
--timeout 10 \
--output results.json \
--format json \
--verbose