UNPKG

@vin_coder/pg-cli

Version:
65 lines (51 loc) 1.87 kB
#!/usr/bin/env node const program = require("commander"); const chalk = require("chalk"); const minimist = require("minimist"); program .version(require("../package.json").version) .usage("<command> [options]"); program .command("init <repoName>") .description("使用pg-cli 创建一个新项目仓库") .option("-f, --frame <frameName>", "指定依赖的前端框架") .option("-c, --cssPreprocessor <processorName>", "指定所需的 css 预处理器") .action((name, cmd) => { const options = cleanArgs(cmd); if (minimist(process.argv.slice(3))._.length > 1) { console.log(chalk.yellow("参数名太多了,只取第一个,其他无效")); } require("../lib/init")(name, options); }); program .command("add frame <frameName>") .description("使用pg-cli 在一个已存在的仓库中添加前端框架") .action((name, cmd) => { const options = cleanArgs(cmd); if (minimist(process.argv.slice(4))._.length > 1) { console.log(chalk.yellow("参数名太多了,只取第一个,其他无效")); } require("../lib/add-frame")(name, options); }); program .command("add project <projectName>") .description("使用pg-cli 在指定的前端框架中添加项目") .option("-f, --frame <frameName>", "指定项目所用前端框架") .action((name, cmd) => { const options = cleanArgs(cmd); if (minimist(process.argv.slice(4))._.length > 1) { console.log(chalk.yellow("参数名太多了,只取第一个,其他无效")); } require("../lib/add-project")(name, options); }); program.parse(process.argv); function cleanArgs(cmd) { let args = {}; cmd.options.forEach((o) => { let key = o.long.replace(/^--/, ""); if (typeof cmd[key] !== "function" && typeof cmd[key] !== "undefined") { args[key] = cmd[key]; } }); return args; }