# Ollama Console Remover 使用Ollama(deepseek-coder:6.7b)智能去除JavaScript文件中的console语句的脚本工具。 ## 功能特点 - 🤖 使用Ollama AI模型智能识别和移除console语句 - 🔒 保持代码结构和功能完整性 - 🚀 支持批量处理整个目录 - 📦 适用于已压缩的JS文件 - 🔄 提供本地备用方案(当Ollama不可用时) - 📊 显示处理前后的文件大小对比 ## 前置要求 ### 1. 安装Ollama ```bash # macOS brew install ollama # Linux (Ubuntu/Debian) curl -fsSL https://ollama.com/install.sh | sh # Windows # 从 https://ollama.com/ 下载安装包 ``` ### 2. 启动Ollama服务 ```bash ollama serve ``` ### 3. 下载deepseek-coder模型 ```bash ollama pull deepseek-coder:6.7b ``` ### 4. 验证安装 ```bash curl http://localhost:11434/api/tags ``` ## 使用方法 ### 快速开始 1. **优化处理dist目录(推荐)** ```bash node scripts/ollama/optimize-dist.js ``` 这将自动处理`dist`目录中的所有JS文件,并输出到`dist-optimized`目录。 2. **测试Ollama连接** ```bash node scripts/ollama/test-ollama.js ``` ### 高级用法 1. **处理指定目录** ```bash # 处理单个目录,输出到 新目录 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 ``` 2. **命令行参数** ``` Usage: node ollama-console-remover.js [options] [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 **并行处理演示:** - 创建演示文件 - 展示实际并行处理效果 - 统计性能数据 ## 示例 ### 输入代码(已压缩): ```javascript function testFunction(){console.log("debug info");const data={name:"test",value:123};console.error("error occurred");return data;}console.warn("warning message"); ``` ### Ollama处理后: ```javascript function testFunction(){const data={name:"test",value:123};return data;} ``` ### 处理结果: - 移除了所有console语句 - 保持了代码功能完整性 - 减少了文件大小 ## 注意事项 1. **Ollama服务状态** - 确保Ollama服务在运行(`ollama serve`) - 检查模型是否已下载(`ollama list`) 2. **文件备份** - 建议在处理前备份原始文件 - 脚本不会修改原始文件,只会创建新的清洁版本 3. **性能考虑** - Ollama处理每个文件需要几秒钟时间 - 对于大量文件,处理可能需要较长时间 - 可以使用`--dry-run`预览处理范围 4. **备用方案** - 当Ollama不可用时,会自动切换到本地备用方法 - 本地方法使用正则表达式,可能不如AI精确 - 使用`--local`参数可强制使用本地方法 ## 故障排除 ### Ollama连接问题 ```bash # 检查Ollama是否运行 curl http://localhost:11434/api/tags # 重启Ollama服务 ollama serve # 检查模型是否已下载 ollama list ``` ### 模型相关问题 ```bash # 重新下载模型 ollama pull deepseek-coder:6.7b # 删除并重新下载 ollama rm deepseek-coder:6.7b ollama pull deepseek-coder:6.7b ``` ## 性能优化建议 1. **批量处理**:使用脚本处理整个目录而不是单个文件 2. **并行处理**:可以考虑修改脚本支持并发处理多个文件 3. **缓存结果**:对于重复文件可以添加缓存机制 4. **增量处理**:只处理修改过的文件 ## 许可证 ## 🚀 性能优化版本 ### 优化功能 - **🎯 并行处理**:使用Worker线程多文件并发处理 - **📋 智能缓存**:避免重复处理相同文件 - **⏭️ 增量处理**:只处理修改过的文件 - **📊 性能统计**:详细的处理时间和大小对比 ### 使用优化版本 1. **优化dist目录** ```bash node scripts/ollama/optimize-dist.js ``` 2. **优化任意目录** ```bash node scripts/ollama/optimized-processor.js ./dist ``` 3. **性能对比测试** ```bash node scripts/ollama/performance-test.js ``` 4. **并行处理测试** ```bash node scripts/ollama/simple-parallel-test.js ``` ### 优化版本选项 ```bash # 预览模式 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时效果显著 ## 性能优化建议 1. **批量处理**:使用脚本处理整个目录而不是单个文件 2. **并行处理**:可以考虑修改脚本支持并发处理多个文件 3. **缓存结果**:对于重复文件可以添加缓存机制 4. **增量处理**:只处理修改过的文件 ## 故障排除 ## 📚 更多文档 - **⚡ 快速开始指南**: [QUICK-START.md](./ollama/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