import fs from 'fs'; import path from 'path'; import { execSync } from 'child_process'; // 工程目录路径 const projectDir = '/Users/hongkai/Documents/work/bolian/web/projects'; // 获取命令行参数 const args = process.argv.slice(2); const targetProject = args[0]; // 读取工程目录下的所有子目录 const directories = fs.readdirSync(projectDir).filter(file => { const filePath = path.join(projectDir, file); return fs.statSync(filePath).isDirectory(); }); directories.forEach(directory => { // 如果指定了目标项目且当前目录不是目标项目,则跳过 if (targetProject && directory !== targetProject) { console.log(`Skipping project ${directory} as it's not the target project...`); return; } if (directory === 'base') { console.log(`Skipping base project...`); return; } const packageJsonPath = path.join(projectDir, directory, 'package.json'); if (fs.existsSync(packageJsonPath)) { console.log(`Building project in ${directory}...`); try { // 添加调试信息 console.log(`Executing: pnpm run build in ${directory}`); execSync('pnpm run build', { cwd: path.join(projectDir, directory), stdio: 'inherit' }); } catch (error) { console.error(`Failed to build project in ${directory}:`, error.message); } } else { console.log(`No package.json found in ${directory}, skipping...`); } });