const fs = require('fs'); // 读取学生完成的项目数据 const projectsData = JSON.parse( fs.readFileSync('./网页未导入数据/学生完成的项目.json', 'utf-8') ); // 筛选出智能开发产业的项目 const smartDevProjects = projectsData.filter(item => item['所属就业管家'] === '智能开发' && item['所属垂直方向'] === 'AI大前端' ); // 转换为页面需要的格式 const myProjectsData = smartDevProjects.map(item => ({ unitName: item['单元名称查询'], projects: item['AI项目名称'].filter(p => p && p.trim() !== '') .map(p => { // 去掉项目名称前面的序号 return p.replace(/^\d+\.\s*/, ''); }) })); // 生成要替换的代码 const projectsCode = `const myProjectsData = ${JSON.stringify(myProjectsData, null, 2)};`; // 读取原文件 const filePath = './src/pages/ProjectLibraryPage/index.jsx'; let fileContent = fs.readFileSync(filePath, 'utf-8'); // 备份原文件 const backupPath = `${filePath}.backup_myprojects_${new Date().toISOString().replace(/[:.]/g, '-')}`; fs.writeFileSync(backupPath, fileContent); console.log(`✅ 已创建备份:${backupPath}`); // 替换myProjectsData数据 fileContent = fileContent.replace( /const myProjectsData = \[\s*[\s\S]*?\];/, projectsCode ); // 写回文件 fs.writeFileSync(filePath, fileContent); console.log('✅ 我的项目库数据更新完成!'); console.log(`共导入 ${myProjectsData.length} 个单元的项目数据`); console.log('单元列表:'); myProjectsData.forEach((unit, index) => { console.log(`${index + 1}. ${unit.unitName} (${unit.projects.length}个项目)`); });