美文网首页
commander开发命令行工具快速上手

commander开发命令行工具快速上手

作者: 忍不住的k | 来源:发表于2019-03-28 17:46 被阅读0次

    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!' : ''}`);
    }
    
    
    
    

    相关文章

      网友评论

          本文标题:commander开发命令行工具快速上手

          本文链接:https://www.haomeiwen.com/subject/gzjcbqtx.html