Files
2025-12-28 08:13:13 +08:00

282 lines
8.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ollama Console Remover
使用Ollamadeepseek-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] <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
**并行处理演示:**
- 创建演示文件
- 展示实际并行处理效果
- 统计性能数据
## 示例
### 输入代码(已压缩):
```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