import fs from 'fs';
import * as path from 'path';
import spawn from 'cross-spawn';
import open from 'open';
import { config, logs } from '@opentiny/cli-devkit';

const log = logs('<%=pluginName%>');
const cwd = process.cwd();

export default function () {

  const toolkitConfig = config.get('toolkitConfig');

  if (!fs.existsSync(path.resolve(cwd, 'webpack.config.js'))) {
    log.error('未发现 webpack.config.js 文件');
    return;
  }

  spawn('./node_modules/.bin/webpack-dev-server', [
    '--config',
    './webpack.config.js',
    '--port',
    toolkitConfig.port
  ], { stdio: 'inherit' });

  if (toolkitConfig.open) {
    // 开服务器比较慢,给它留点时间buffer
    setTimeout(() => {
      open(`http://127.0.0.1:${toolkitConfig.port}/${toolkitConfig.openTarget}`);
    }, 500);
  }
};
