chore: 增加scripts目录

This commit is contained in:
2025-12-28 08:13:13 +08:00
parent bc89550a28
commit f6d9f5255e
23 changed files with 4817 additions and 2638 deletions

282
scripts/README-OLLAMA.md Normal file
View File

@@ -0,0 +1,282 @@
# 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