/** * 复制 Monaco Editor 静态资源到 public 目录 * 用于离线环境或避免 CDN 加载失败 */ import { cpSync, existsSync, mkdirSync } from 'fs'; import { join, dirname } from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const projectRoot = join(__dirname, '..'); const monacoSrc = join(projectRoot, 'node_modules', 'monaco-editor', 'min'); const monacoDest = join(projectRoot, 'public', 'monaco-editor'); try { console.log('📦 开始复制 Monaco Editor 资源...'); console.log('源目录:', monacoSrc); console.log('目标目录:', monacoDest); // 检查源目录是否存在 if (!existsSync(monacoSrc)) { console.error('❌ 错误: Monaco Editor 源目录不存在'); console.error('请先运行: npm install monaco-editor'); process.exit(1); } // 创建目标目录 if (!existsSync(monacoDest)) { mkdirSync(monacoDest, { recursive: true }); } // 复制整个 min 目录到 public/monaco-editor cpSync(monacoSrc, monacoDest, { recursive: true }); console.log('✅ Monaco Editor 资源复制成功!'); console.log('📂 资源位置:', monacoDest); console.log('\n下一步:'); console.log('1. 在 ComparePreview.tsx 中取消注释本地路径配置'); console.log('2. 注释掉 CDN 配置'); console.log('3. 重启开发服务器'); } catch (error) { console.error('❌ 复制失败:', error.message); process.exit(1); }