12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 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...`);
- }
- });
|