Files
mp-weixin-2811-xcx.aigc-qui…/scripts/ollama/test-simple-process.js
2025-12-28 08:13:13 +08:00

82 lines
2.8 KiB
JavaScript

#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
// 简单的语法检查函数
function hasSyntaxErrors(code) {
const lines = code.split('\n');
for (let i = 0; i < lines.length; i++) {
const line = lines[i].trim();
// 检查常见的语法错误模式
if (line.includes('p[s][0]') && !line.includes('p[s][0];')) {
console.log(`Syntax error detected at line ${i + 1}: missing semicolon after p[s][0]`);
return true;
}
// 检查未闭合的括号(简单检查)
const openBrackets = (line.match(/\[/g) || []).length;
const closeBrackets = (line.match(/\]/g) || []).length;
if (Math.abs(openBrackets - closeBrackets) > 2) {
console.log(`Bracket mismatch detected at line ${i + 1}`);
return true;
}
// 检查其他常见错误模式
if (line.includes('void 0)') && line.includes('if(')) {
console.log(`Conditional syntax error detected at line ${i + 1}`);
return true;
}
}
return false;
}
// 简单的console移除函数
function removeConsoleLocally(jsCode) {
return jsCode
.replace(/console\.(log|error|warn|info|debug|assert|trace|table|group|groupEnd|time|timeEnd)\s*\([^;]*?\);?\s*/g, '')
.replace(/\/\*[\s\S]*?\*\//g, '')
.replace(/\/\/.*$/gm, '');
}
// 测试runtime.js文件
async function testRuntimeProcessing() {
console.log('🧪 Testing Runtime.js with Simple Processor');
console.log('==========================================');
const runtimePath = path.join(__dirname, '../../dist/common/runtime.js');
if (!fs.existsSync(runtimePath)) {
console.log('❌ runtime.js file not found');
return;
}
try {
const originalCode = fs.readFileSync(runtimePath, 'utf8');
console.log(`📄 Original file size: ${originalCode.length} characters`);
// 检查语法错误
const hasError = hasSyntaxErrors(originalCode);
if (hasError) {
console.log('⚠️ Syntax error detected - file would be skipped in parallel processing');
} else {
console.log('✅ No syntax errors detected');
// 尝试处理
const cleanedCode = removeConsoleLocally(originalCode);
console.log(`🧹 Cleaned file size: ${cleanedCode.length} characters`);
console.log(`📉 Size reduction: ${originalCode.length - cleanedCode.length} characters`);
}
console.log('\n✅ Simple processing test completed!');
} catch (error) {
console.error('❌ Error processing runtime.js:', error.message);
}
}
testRuntimeProcessing();