chore: 增加scripts目录
This commit is contained in:
82
scripts/ollama/test-simple-process.js
Normal file
82
scripts/ollama/test-simple-process.js
Normal file
@@ -0,0 +1,82 @@
|
||||
#!/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();
|
||||
Reference in New Issue
Block a user