Files
ALL-teach_sys/frontend_视觉设计/correctCleanIndent.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

112 lines
3.2 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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}_correct_clean`;
const originalContent = fs.readFileSync('src/mocks/resumeInterviewMock.js', 'utf-8');
fs.writeFileSync(backupPath, originalContent);
console.log(`✓ Backup created: ${backupPath}`);
// Function to clean indentation from text
function cleanIndentation(text) {
const lines = text.split('\n');
const cleanedLines = lines.map(line => {
// Remove all leading whitespace (spaces and tabs)
return line.replace(/^[\s\t]+/, '');
});
return cleanedLines.join('\n');
}
let totalCount = 0;
let updatedContent = originalContent;
// Use a more specific regex that handles multi-line content
const regex = /"answer":\s*"((?:[^"\\]|\\.)*)"/g;
let match;
const replacements = [];
while ((match = regex.exec(originalContent)) !== null) {
const fullMatch = match[0];
const answerContent = match[1];
// Unescape the content
let unescaped = answerContent
.replace(/\\n/g, '\n')
.replace(/\\"/g, '"')
.replace(/\\\\/g, '\\');
// Clean indentation
let cleaned = cleanIndentation(unescaped);
// Re-escape for JSON
let escaped = cleaned
.replace(/\\/g, '\\\\')
.replace(/"/g, '\\"')
.replace(/\n/g, '\\n');
const newMatch = `"answer": "${escaped}"`;
replacements.push({
original: fullMatch,
replacement: newMatch
});
totalCount++;
}
// Apply all replacements
replacements.forEach(({ original, replacement }) => {
updatedContent = updatedContent.replace(original, replacement);
});
console.log(`\n✅ Processed ${totalCount} 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');
// Verify the changes
console.log('\n📋 Verification of cleaned answers:\n');
// Check a few samples
const sampleRegex = /"answer":\s*"([^"]*?阶段[^"]{0,400})"/;
const sampleMatch = updatedContent.match(sampleRegex);
if (sampleMatch) {
const sample = sampleMatch[1].replace(/\\n/g, '\n').substring(0, 500);
console.log('Sample answer (should have NO leading spaces):');
console.log('═'.repeat(60));
console.log(sample);
console.log('═'.repeat(60));
// Check each line for indentation
const lines = sample.split('\n');
let hasIndentation = false;
lines.forEach((line, idx) => {
if (line.match(/^[\s\t]+/)) {
hasIndentation = true;
console.log(`Line ${idx + 1} still has indentation: "${line.substring(0, 40)}..."`);
}
});
if (!hasIndentation) {
console.log('\n✅ SUCCESS: All indentation has been removed!');
} else {
console.log('\n⚠ WARNING: Some lines still have indentation');
}
}
} catch (error) {
console.error('❌ Syntax error detected, restoring backup...');
fs.writeFileSync('src/mocks/resumeInterviewMock.js', originalContent);
console.log('Backup restored');
console.error('Error:', error.message);
}