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(`📄 文件已更新`); |