8.7 KiB
8.7 KiB
Ollama Console Remover
使用Ollama(deepseek-coder:6.7b)智能去除JavaScript文件中的console语句的脚本工具。
功能特点
- 🤖 使用Ollama AI模型智能识别和移除console语句
- 🔒 保持代码结构和功能完整性
- 🚀 支持批量处理整个目录
- 📦 适用于已压缩的JS文件
- 🔄 提供本地备用方案(当Ollama不可用时)
- 📊 显示处理前后的文件大小对比
前置要求
1. 安装Ollama
# macOS
brew install ollama
# Linux (Ubuntu/Debian)
curl -fsSL https://ollama.com/install.sh | sh
# Windows
# 从 https://ollama.com/ 下载安装包
2. 启动Ollama服务
ollama serve
3. 下载deepseek-coder模型
ollama pull deepseek-coder:6.7b
4. 验证安装
curl http://localhost:11434/api/tags
使用方法
快速开始
- 优化处理dist目录(推荐)
node scripts/ollama/optimize-dist.js
这将自动处理dist目录中的所有JS文件,并输出到dist-optimized目录。
- 测试Ollama连接
node scripts/ollama/test-ollama.js
高级用法
- 处理指定目录
# 处理单个目录,输出到 新目录
node scripts/ollama/ollama-console-remover.js ./input-dir ./output-dir
# 使用本地备用方法(不使用Ollama)
node scripts/ollama/ollama-console-remover.js --local ./input-dir
# 预览模式(不实际修改文件)
node scripts/ollama/ollama-console-remover.js --dry-run ./input-dir
# 使用优化版本处理器(推荐)
node scripts/ollama/optimized-processor.js ./input-dir
- 命令行参数
Usage: node ollama-console-remover.js [options] <input-directory> [output-directory]
Arguments:
input-directory 包含要处理的JS文件的目录
output-directory 保存处理后文件的目录(默认:输入目录 + '-cleaned')
Options:
--local, -l 使用本地备用方法,不使用Ollama
--dry-run, -d 预览模式 - 不保存文件,只显示会做什么
--help, -h 显示帮助信息
工具说明
🚀 优化版本(推荐)
optimize-dist.js
便捷脚本,专门用于处理项目的dist目录:
- ✅ 自动检测dist目录
- 🚀 并行处理(4个Worker线程)
- 📋 智能缓存和增量处理
- 📊 详细的性能统计
optimized-processor.js
核心优化处理器:
- 🎯 Worker线程多文件并发处理
- 📋 智能缓存(基于文件哈希)
- ⏭️ 增量处理(只处理修改过的文件)
- 🤖 自动Ollama检测和本地备用
📋 基础版本
ollama-console-remover.js
主要工具文件,包含核心功能:
removeConsoleWithOllama()- 使用Ollama API处理代码checkOllamaHealth()- 检查Ollama服务状态processJsFiles()- 递归处理目录中的所有JS文件
process-dist.js
基础dist处理器:
- 自动检测dist目录
- 显示预览信息
- 提供详细的文件大小对比
🧪 测试工具
test-ollama.js
测试脚本,用于验证Ollama配置:
- 测试Ollama连接
- 演示console语句移除效果
- 保存测试结果
performance-test.js
性能对比测试:
- 对比不同处理方法的性能
- 测试正则、状态机、Ollama三种方法
- 生成详细的性能报告
simple-parallel-test.js
并行处理测试:
- 验证Worker线程功能
- 测试并发处理效果
- 展示性能提升
demo-parallel.js
并行处理演示:
- 创建演示文件
- 展示实际并行处理效果
- 统计性能数据
示例
输入代码(已压缩):
function testFunction(){console.log("debug info");const data={name:"test",value:123};console.error("error occurred");return data;}console.warn("warning message");
Ollama处理后:
function testFunction(){const data={name:"test",value:123};return data;}
处理结果:
- 移除了所有console语句
- 保持了代码功能完整性
- 减少了文件大小
注意事项
- Ollama服务状态
- 确保Ollama服务在运行(
ollama serve) - 检查模型是否已下载(
ollama list)
- 确保Ollama服务在运行(
- 文件备份
- 建议在处理前备份原始文件
- 脚本不会修改原始文件,只会创建新的清洁版本
- 性能考虑
- Ollama处理每个文件需要几秒钟时间
- 对于大量文件,处理可能需要较长时间
- 可以使用
--dry-run预览处理范围
- 备用方案
- 当Ollama不可用时,会自动切换到本地备用方法
- 本地方法使用正则表达式,可能不如AI精确
- 使用
--local参数可强制使用本地方法
故障排除
Ollama连接问题
# 检查Ollama是否运行
curl http://localhost:11434/api/tags
# 重启Ollama服务
ollama serve
# 检查模型是否已下载
ollama list
模型相关问题
# 重新下载模型
ollama pull deepseek-coder:6.7b
# 删除并重新下载
ollama rm deepseek-coder:6.7b
ollama pull deepseek-coder:6.7b
性能优化建议
- 批量处理:使用脚本处理整个目录而不是单个文件
- 并行处理:可以考虑修改脚本支持并发处理多个文件
- 缓存结果:对于重复文件可以添加缓存机制
- 增量处理:只处理修改过的文件
许可证
🚀 性能优化版本
优化功能
- 🎯 并行处理:使用Worker线程多文件并发处理
- 📋 智能缓存:避免重复处理相同文件
- ⏭️ 增量处理:只处理修改过的文件
- 📊 性能统计:详细的处理时间和大小对比
使用优化版本
- 优化dist目录
node scripts/ollama/optimize-dist.js
- 优化任意目录
node scripts/ollama/optimized-processor.js ./dist
- 性能对比测试
node scripts/ollama/performance-test.js
- 并行处理测试
node scripts/ollama/simple-parallel-test.js
优化版本选项
# 预览模式
node scripts/ollama/optimize-dist.js --dry-run
# 使用本地方法(更快但不如AI准确)
node scripts/ollama/optimize-dist.js --local
# 单线程处理
node scripts/ollama/optimize-dist.js --single
# 清除缓存重新处理
node scripts/ollama/optimize-dist.js --clear-cache
# 并行处理演示
node scripts/ollama/demo-parallel.js
性能对比
| 方法 | 速度 | 准确性 | 适用场景 |
|---|---|---|---|
| Regex | ⚡ 超快 | ⚠️ 可能误判 | 简单项目 |
| State Machine | 🚀 快 | ✅ 较准确 | 大多数项目 |
| Ollama AI | 🐢 慢 | 🎯 最准确 | 生产环境 |
| 优化并行 | 🚀🚀 超快 | 🎯 最准确 | 大型项目 |
缓存机制
- 缓存位置:
./scripts/ollama/.cache/ - 基于文件内容哈希
- 自动清理过期缓存
- 支持手动清除
并行处理特性
- 🎯 Worker线程:使用Node.js Worker Threads实现多文件并发
- ⚡ 4个并发Worker:最多同时处理4个文件
- 🔄 自动激活:当文件数 > 3时自动启用并行处理
- 🛡️ 错误恢复:Worker失败时自动回退到单线程
- 📊 性能提升:特别是使用Ollama AI时效果显著
性能优化建议
- 批量处理:使用脚本处理整个目录而不是单个文件
- 并行处理:可以考虑修改脚本支持并发处理多个文件
- 缓存结果:对于重复文件可以添加缓存机制
- 增量处理:只处理修改过的文件
故障排除
📚 更多文档
- ⚡ 快速开始指南: QUICK-START.md
- 🧪 测试工具: 查看
scripts/ollama/目录下的测试脚本 - 📖 性能报告: 运行测试后生成
performance-report.json
📁 目录结构
scripts/
├── README-OLLAMA.md # 📖 主文档
└── ollama/ # 🤖 Ollama工具目录
├── optimize-dist.js # 🚀 优化dist处理器
├── optimized-processor.js # ⚙️ 核心优化引擎
├── ollama-console-remover.js # 🤖 基础Ollama处理器
├── process-dist.js # 📋 基础dist处理器
├── test-ollama.js # 🧪 Ollama连接测试
├── performance-test.js # 📊 性能对比测试
├── simple-parallel-test.js # 🎯 并行处理测试
├── demo-parallel.js # 🚀 并行处理演示
├── QUICK-START.md # ⚡ 快速开始指南
└── .cache/ # 📋 缓存目录(自动创建)
MIT License