返回更新列表
新发布Aug 4, 2026

rev-dep v3.0.0

面向现代 JavaScript 和 TypeScript 代码库的依赖分析与优化工具包。借助极速 CLI 强制执行依赖图卫生,并移除未使用的代码。

分享

Rev-dep

Rev-dep logo

功能  •   安装  •   文档  •   探索工具包  •   CLI 参考

面向现代 JavaScript 和 TypeScript 代码库的依赖分析与优化工具包。
通过极速 CLI 强制执行依赖图规范并移除未使用代码。

Rev-dep config execution CLI output


rev-dep version rev-dep license rev-dep PRs welcome

关于 📣

随着代码库规模扩大,维护依赖关系的心智模型变得不可能。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 内部解析、解析和发现的内容。

安装 📦

完整文档:rev-dep.com/docs/intro

本地安装以设置项目检查脚本``` 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

贡献

  1. Fork 本仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add some amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开 Pull Request

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

免责声明

本工具仅供教育和安全研究目的使用。用户有责任遵守所有适用的法律和法规。作者不对本软件的任何滥用行为负责。

致谢

  • 使用 Go 构建
  • 地理位置数据来自 MaxMind
  • 灵感来源于各种代理检查工具

支持

## 功能特性

- **多协议支持**: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

命令行选项

分类