Files
ALL-teach_sys/frontend_视觉设计/fullyRemoveIndent.cjs
KQL 38350dca36 更新12个教务系统并优化项目大小
主要更新:
- 更新所有12个产业的教务系统数据和功能
- 删除所有 node_modules 文件夹(节省3.7GB)
- 删除所有 .yoyo 缓存文件夹(节省1.2GB)
- 删除所有 dist 构建文件(节省55MB)

项目优化:
- 项目大小从 8.1GB 减少到 3.2GB(节省60%空间)
- 保留完整的源代码和配置文件
- .gitignore 已配置,防止再次提交大文件

启动脚本:
- start-industry.sh/bat/ps1 脚本会自动检测并安装依赖
- 首次启动时自动运行 npm install
- 支持单个或批量启动产业系统

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 14:36:25 +08:00

96 lines
2.8 KiB
JavaScript

#!/usr/bin/env node
const fs = require('fs');
// Create backup
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
const backupPath = `src/mocks/resumeInterviewMock.js.backup_${timestamp}_fully_remove`;
const mockContent = fs.readFileSync('src/mocks/resumeInterviewMock.js', 'utf-8');
fs.writeFileSync(backupPath, mockContent);
console.log(`✓ Backup created: ${backupPath}`);
// Function to fully remove all indentation from answers
function fullyRemoveIndentation(answer) {
// Split by newlines
const lines = answer.split('\\n');
const cleanedLines = [];
for (let line of lines) {
// Remove ALL leading whitespace from every line
const cleanedLine = line.trimStart();
// Only add non-empty lines or explicit empty lines
if (cleanedLine || line === '') {
cleanedLines.push(cleanedLine);
}
}
return cleanedLines.join('\\n');
}
// Process the file
let updatedContent = mockContent;
let count = 0;
const processedAnswers = [];
// Pattern to match answer fields (handles escaped characters properly)
const answerRegex = /"answer":\s*"((?:[^"\\]|\\.)*)"/g;
updatedContent = updatedContent.replace(answerRegex, (match, answerContent) => {
// Unescape the answer content for processing
let unescaped = answerContent
.replace(/\\n/g, '\n')
.replace(/\\"/g, '"')
.replace(/\\\\/g, '\\');
// Fully remove all indentation
let cleaned = fullyRemoveIndentation(unescaped);
// Store first few for display
if (processedAnswers.length < 3) {
processedAnswers.push({
original: unescaped.substring(0, 200),
cleaned: cleaned.substring(0, 200)
});
}
// Re-escape for JSON
let escaped = cleaned
.replace(/\\/g, '\\\\')
.replace(/"/g, '\\"')
.replace(/\n/g, '\\n');
count++;
return `"answer": "${escaped}"`;
});
console.log(`\n✅ Fully removed indentation from ${count} answer fields`);
// Save the file
fs.writeFileSync('src/mocks/resumeInterviewMock.js', updatedContent);
// Verify syntax
const { execSync } = require('child_process');
try {
execSync('node -c src/mocks/resumeInterviewMock.js', { encoding: 'utf-8' });
console.log('✅ Syntax validation passed');
// Show before/after comparison
console.log('\n📋 Before/After comparison:\n');
processedAnswers.forEach((item, idx) => {
console.log(`Example ${idx + 1}:`);
console.log('BEFORE (with indentation):');
console.log(item.original);
console.log('\nAFTER (left-aligned):');
console.log(item.cleaned);
console.log('\n' + '='.repeat(60) + '\n');
});
console.log('✅ All content is now left-aligned without any indentation.');
} catch (error) {
console.error('❌ Syntax error detected, restoring backup...');
fs.writeFileSync('src/mocks/resumeInterviewMock.js', mockContent);
console.log('Backup restored');
console.error('Error:', error.message);
}