69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
|
|
import fs from 'fs';
|
|||
|
|
|
|||
|
|
const content = fs.readFileSync('src/data/mockData.js', 'utf-8');
|
|||
|
|
const lines = content.split('\n');
|
|||
|
|
|
|||
|
|
// 要删除的重复函数及其行号范围
|
|||
|
|
const duplicatesToRemove = [
|
|||
|
|
{ name: 'generateCalendarDays', start: 6018 },
|
|||
|
|
{ name: 'getWeekDays', start: 6091 },
|
|||
|
|
{ name: 'calculateStageProgress', start: 6108 },
|
|||
|
|
{ name: 'getCurrentActiveStage', start: 6133 },
|
|||
|
|
{ name: 'checkMilestoneBlockage', start: 6149 },
|
|||
|
|
{ name: 'updateStageStatuses', start: 6182 },
|
|||
|
|
{ name: 'getOverallProgress', start: 6214 }
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 找到每个函数的结束行
|
|||
|
|
duplicatesToRemove.forEach(func => {
|
|||
|
|
let braceCount = 0;
|
|||
|
|
let inFunction = false;
|
|||
|
|
|
|||
|
|
for (let i = func.start - 1; i < lines.length; i++) {
|
|||
|
|
const line = lines[i];
|
|||
|
|
|
|||
|
|
if (!inFunction && line.includes('export const ' + func.name)) {
|
|||
|
|
inFunction = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (inFunction) {
|
|||
|
|
// 计算大括号
|
|||
|
|
for (const char of line) {
|
|||
|
|
if (char === '{') braceCount++;
|
|||
|
|
if (char === '}') braceCount--;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 函数结束
|
|||
|
|
if (braceCount === 0 && line.includes('};')) {
|
|||
|
|
func.end = i + 1; // 行号(从1开始)
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 标记要删除的行
|
|||
|
|
const linesToDelete = new Set();
|
|||
|
|
duplicatesToRemove.forEach(func => {
|
|||
|
|
if (func.end) {
|
|||
|
|
for (let i = func.start; i <= func.end; i++) {
|
|||
|
|
linesToDelete.add(i);
|
|||
|
|
}
|
|||
|
|
console.log(`标记删除 ${func.name}: 行 ${func.start}-${func.end}`);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 创建新内容,跳过标记的行
|
|||
|
|
const newLines = [];
|
|||
|
|
lines.forEach((line, index) => {
|
|||
|
|
const lineNum = index + 1;
|
|||
|
|
if (!linesToDelete.has(lineNum)) {
|
|||
|
|
newLines.push(line);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 写入文件
|
|||
|
|
fs.writeFileSync('src/data/mockData.js', newLines.join('\n'));
|
|||
|
|
|
|||
|
|
console.log(`\n✅ 已删除 ${duplicatesToRemove.length} 个重复的函数`);
|
|||
|
|
console.log(`📄 文件已更新`);
|