commander是一个帮助快速开发Nodejs命令行工具的package
commander的API:
command:自定义执行的命令
option:可选参数
alias:用于 执行命令的别名
description:命令描述
action:执行命令后所执行的方法
usage:用户使用提示
parse:解析命令行参数,注意这个方法一定要放到最后调用
#!/usr/bin/env node
var inquirer = require('inquirer');
var program = require('commander');//一个帮助快速开发Nodejs命令行工具的package
var Promise = require("bluebird");
var fs = Promise.promisifyAll(require('fs-extra'));
var chalk = require('chalk');//终端输出时颜色样式输出工具
var figlet = require('figlet');
var ora = require('ora');
var exec = require('promise-exec');
var shell =require('shelljs');//用于执行shell脚本的包
console.log(
chalk.green(
figlet.textSync("NODE CLI")
)
);
program
.version(require('../package').version)
.usage('<command> [options] 快速启动项目') //-h 打印的用户提示
program
.option('-n, --yourname [yourname]', 'Your name')
.option('-g, --glad', 'Tell us you are happy')
program
.command('revert <name>')
.description('我是一段描述')//描述
.option('--rules', 'list all module rule names')//选项
.option('--plugins', 'list all plugin names')
.alias('rv')//命令别名
.action((name,cmd) => {
//如果传了选项,这样可以取到
var rules = cmd.rules ? true : false;
//name取到命令后面的参数
console.log(`回复啦${name}`)
})
// 添加一些有用的信息到help选项
program.on('--help', () => {
console.log()
console.log(` Run ${chalk.cyan(`vue <command> --help`)} for detailed usage of given command.`)
console.log()
})
//解析参数这一行要放到定义的命令最后面
program.parse(process.argv);
if (program.yourname) {
console.log(`Hello, ${program.yourname}! ${program.glad ? 'I am very happy to see you!' : ''}`);
}
网友评论