import { Command } from 'commander';
import { build } from 'vite';
import chalk from 'chalk';
import { logger } from 'z-utils';
import { getViteConfig } from '../config/vite.js';
/**
 * 构建命令
 */
export const buildCommand = new Command('build')
    .description('构建生产版本')
    .option('-m, --mode <mode>', '构建模式', 'production')
    .option('-c, --config <config>', '配置文件路径')
    .option('-o, --outDir <outDir>', '输出目录', 'dist')
    .option('--minify', '是否压缩', true)
    .option('--sourcemap', '是否生成 sourcemap', false)
    .action(async (options) => {
    try {
        await buildProject(options);
    }
    catch (error) {
        logger.error(`构建失败: ${error instanceof Error ? error.message : String(error)}`);
        process.exit(1);
    }
});
/**
 * 构建项目
 */
async function buildProject(options) {
    logger.info('开始构建项目...');
    // 获取 Vite 配置
    const viteConfig = await getViteConfig(options);
    // 执行构建
    const result = await build(viteConfig);
    if (Array.isArray(result)) {
        // 多页面构建
        logger.success(`构建完成，生成了 ${result.length} 个页面`);
        result.forEach((buildResult, index) => {
            console.log(`  ${chalk.cyan(`页面 ${index + 1}:`)} ${buildResult.output}`);
        });
    }
    else {
        // 单页面构建
        logger.success('构建完成');
        console.log(`  ${chalk.cyan('输出目录:')} ${options.outDir || 'dist'}`);
    }
    console.log();
    logger.info('构建产物已生成，可以部署到生产环境');
}
//# sourceMappingURL=build.js.map