import fs from 'node:fs/promises';
import { existsSync } from 'node:fs';
import path from 'node:path';
const SYNC_CONFIG = [
{ folder: 'reinforcement-learning', targetName: 'RL' },
{ folder: 'cluster', targetName: 'Cluster' },
{ folder: 'compute', targetName: 'Compute' },
{ folder: 'leaks', targetName: 'Leaks' },
{ folder: 'memory', targetName: 'Memory' },
{ folder: 'operator', targetName: 'Operator' },
{ folder: 'statistic', targetName: 'Statistic' },
{ folder: 'timeline', targetName: 'Timeline' },
];
const __dirname = path.resolve();
const FRAMEWORK_PLUGINS_ROOT = path.join(__dirname, 'framework/public/plugins');
async function sync() {
console.log('开始分发构建产物...');
for (const item of SYNC_CONFIG) {
const sourceDir = path.join(__dirname, item.folder, 'build');
const targetDir = path.join(FRAMEWORK_PLUGINS_ROOT, item.targetName);
try {
if (existsSync(sourceDir)) {
await fs.rm(targetDir, { recursive: true, force: true });
await fs.mkdir(targetDir, { recursive: true });
await fs.cp(sourceDir, targetDir, {
recursive: true,
force: true
});
console.log(`✅ 已同步: ${item.folder} -> ${item.targetName}`);
} else {
console.warn(`⚠️ 跳过: ${item.folder} (未找到 build 目录: ${sourceDir})`);
}
} catch (err) {
console.error(`❌ 同步 ${item.folder} 失败:`, err);
}
}
}
sync();