import fs from 'fs';
import * as path from 'path';
import spawn from 'cross-spawn';
import { logs } from '@opentiny/cli-devkit';
import { CliOption } from './interfaces';

const log = logs('<%=pluginName%>');
const cwd = process.cwd();

export default function (options?: CliOption) {
  log.info('控制台输入的参数为： %o', options.clientArgs);
  log.info('控制台输入的选项为： %o', options.clientOptions);

  if (!fs.existsSync(path.resolve(cwd, 'webpack.config.js'))) {
    log.error('未发现 webpack.config.js 文件');
    return;
  }

  log.info('项目打包中...');
  const cli = spawn(
    './node_modules/.bin/webpack',
    ['--config', './webpack.config.js'],
    { stdio: 'inherit' }
  );

  cli.on('close', (status) => {
    if (status === 0) {
      log.success('打包完成');
    } else {
      log.error('打包失败', status);
    }
  });
}
