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

8.7 KiB
Raw Permalink Blame History

Ollama Console Remover

使用Ollamadeepseek-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

使用方法

快速开始

  1. 优化处理dist目录推荐
node scripts/ollama/optimize-dist.js

这将自动处理dist目录中的所有JS文件并输出到dist-optimized目录。

  1. 测试Ollama连接
node scripts/ollama/test-ollama.js

高级用法

  1. 处理指定目录
# 处理单个目录,输出到 新目录
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
  1. 命令行参数
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语句
  • 保持了代码功能完整性
  • 减少了文件大小

注意事项

  1. Ollama服务状态
    • 确保Ollama服务在运行ollama serve
    • 检查模型是否已下载(ollama list
  2. 文件备份
    • 建议在处理前备份原始文件
    • 脚本不会修改原始文件,只会创建新的清洁版本
  3. 性能考虑
    • Ollama处理每个文件需要几秒钟时间
    • 对于大量文件,处理可能需要较长时间
    • 可以使用--dry-run预览处理范围
  4. 备用方案
    • 当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

性能优化建议

  1. 批量处理:使用脚本处理整个目录而不是单个文件
  2. 并行处理:可以考虑修改脚本支持并发处理多个文件
  3. 缓存结果:对于重复文件可以添加缓存机制
  4. 增量处理:只处理修改过的文件

许可证

🚀 性能优化版本

优化功能

  • 🎯 并行处理使用Worker线程多文件并发处理
  • 📋 智能缓存:避免重复处理相同文件
  • ⏭️ 增量处理:只处理修改过的文件
  • 📊 性能统计:详细的处理时间和大小对比

使用优化版本

  1. 优化dist目录
node scripts/ollama/optimize-dist.js
  1. 优化任意目录
node scripts/ollama/optimized-processor.js ./dist
  1. 性能对比测试
node scripts/ollama/performance-test.js
  1. 并行处理测试
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时效果显著

性能优化建议

  1. 批量处理:使用脚本处理整个目录而不是单个文件
  2. 并行处理:可以考虑修改脚本支持并发处理多个文件
  3. 缓存结果:对于重复文件可以添加缓存机制
  4. 增量处理:只处理修改过的文件

故障排除

📚 更多文档

  • 快速开始指南: 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