UNPKG

@aomi/webapp-cli

Version:

a web app cli

62 lines (59 loc) 1.61 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @author 田尘殇Sean(sean.snow@live.com) create at 2018/10/2 */ const commander_1 = require("commander"); const path = require("path"); const template_1 = require("./template"); const pkg = require('./package.json'); const program = new commander_1.Command(); program .version(pkg.version, '-v, --version') .description('A React Application Manager'); program .command('create <name>') .description(`创建一个Web app. 模板列表: ${template_1.default.map(({ name, describe }) => `${name} - ${describe}`).join('\n ')} 样例: arapp create -t react foo `) .option('-t, --template', '模板名称', 'react') .action((command, options) => { console.log(command, options.template); }); program .command('serve') .description('启动一个开发服务器') .option('-p, --port', '监听端口') .action(() => { run('serve', {}); }); program .command('bundle') .description('编译打包应用') .action(() => { process.env.NODE_ENV = 'production'; run('dll', {}).then(() => { run('bundle', {}); }); }); program .command('dll') .description('创建依赖库') .action(() => run('dll', {})); program .parse(process.argv); function run(cmd, options) { const cmdExecFile = path.join(__dirname, 'cmd', `${cmd}.js`); try { const handler = require(cmdExecFile); return handler.execute(options); } catch (e) { console.error(e); process.exit(1); } }