vorpal 是一个npm 包,我们可以用来开发专业的cli 程序

简单使用

  • 初始化项目
yarn init -y
  • 添加依赖
yarn add vorpal
  • 简单demo
app.js
// const vorpal = require("vorpal")();
// vorpal.show()
const vorpal = require('vorpal')();
vorpal
  .command('say [words...]')
  .option('-b, --backwards')
  .option('-t, --twice')
  .action(function (args, callback) {
    let str = args.words.join(' ');
    str = (args.options.backwards) ?
      str.split('').reverse().join('') :
      str;
    this.log(str);
    callback();
  })
  vorpal
  .command('sayapp [words...]')
  .action(function (args, cb) {
    this.log(args.words.join(' '));
    cb();
  });
vorpal
  .command('reverse [words...]')
  .action(function (args, cb) {
    this.log(args.stdin.split('').reverse().join(''));
    cb();
  });
vorpal
  .command('color [color] [text...]')
  .autocomplete(['2018-12-31', '2019-01-03', '2019-03-01'])
  .action(function (args, cb) {
    this.log(args)
    this.log(vorpal.chalk[args.color](args.text.join('')));
    cb();
  });
  vorpal
  .command('order pizza')
  .option('--anchovies')
  .action(function (args, cb) {
    const self = this;
    this.prompt({
      type: 'input',
      name: 'time',
      message: 'When would you like your pizza?'
    }, function (result) {
      self.log(`Okay, ${result.time} it is!`);
      cb();
    });
  });
  vorpal.delimiter('dalongrong$').
  show()
 
 
  • 运行效果

node app.js
node app.js
dalongrong$
dalongrong$ ls
  Invalid Command. Showing Help:
  Commands:
    help [command...] Provides help for a given command.
    exit Exits application.
    say [options] [words...]
    sayapp [words...]
    reverse [words...]
    color [color] [text...]
    order pizza [options]
dalongrong$
 

参考资料

https://github.com/dthree/vorpal
https://developer.telerik.com/featured/creating-node-js-command-line-utilities-improve-workflow/
https://github.com/rongfengliang/vorpal-pkg-demo

vorpal 又一个方便的cli 开发包的更多相关文章

  1. click python cli 开发包

    python click 包是一个方便的cli 开发包,我们可以用来开发强大的cli 应用 使用venv 进行环境准备,示例代码来自官方 venv 环境准备 python3 -m venv demoa ...

  2. 使用C#代码部署SharePoint 2013开发包简单总结(一)

    这篇文章将总结下如何将自己开发的列表.Web部件.事件接收器等元素部署到SharePoint的服务器.因水平有限,我的做法未必是最佳实践,会有些错误理解和疏漏,欢迎各位高手批评指正——但一定要能给出更 ...

  3. go开发包下载,IDE工具下载,基础配置命令

    目录 go语言介绍 go开发包下载 命令介绍 配置 修改配置 golandIDE工具下载 编译并执行命令 命令 go语言介绍 # 1 诞生于 2009年,10年的时间,非常新的语言,天然支持并发,很新 ...

  4. Chilkat----开源站点之VS2010 CKMailMan一个很好的邮件发送开源开发包

    Chilkat 是一个很好的开源站点,有各种开源库. 开发语言主要有Classic ASP •C • C++ • C# • Delphi ActiveX • Delphi DLL • Visual F ...

  5. 我用的一些Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...

  6. Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢.2.做些小型项目用Sublime Text.3.Browserif ...

  7. SVG开发包, 20 个有用的 SVG 工具,提供更好的图像处理

    20 个有用的 SVG 工具,提供更好的图像处理 SVG 现正在 Web 设计领域变得越发流行, 你可以使用 Illustrator 或者 Inkscape 来创建 SVG 图像. 但当进行 Web ...

  8. Intel 推出 DPDK 开发包的意义是什么?

    Intel 推出 DPDK 开发包的意义是什么? http://www.zhihu.com/question/27413080?sort=created 基于intel dpdk的包处理器,相较于基于 ...

  9. .NET 的 WebSocket 开发包比较(转)

    .NET 的 WebSocket 开发包比较 编者按 本文出现在第三方产品评论部分中.在这一部分的文章只提供给会员,不允许工具供应商用来以任何方式和形式来促销或宣传产品.请会员报告任何垃圾信息或广告. ...

随机推荐

  1. mvc+struct1+struct2

    转一篇写得很棒的文章:https://my.oschina.net/win199176/blog/208171?p=7&temp=1495894148424 1.基于web开发中最原始的jsp ...

  2. URL组成成分及各部分作用简介及urllib.parse / uri

    URL的一般格式为(带方括号[]的为可选项): protocol :// hostname[:port] / path / [;parameters][?query]#fragment urllib. ...

  3. TortoiseGit 的下载与安装

    一.下载 访问https://tortoisegit.org/ 二.安装 然后就next,install 配置参考:2. TortoiseGit安装与配置

  4. 设置checkBox不拦截焦点

    android:clickable="false"android:focusableInTouchMode="false"android:focusable=& ...

  5. 人生苦短,我用python,为什么选择python,python简介

    认识 Python 人生苦短,我用 Python —— Life is short, you need Python  目标 Python 的起源 为什么要用 Python? Python 的特点 ...

  6. L305 发邮件15分钟

    发个邮件-不用那么纠结-把事情讲清楚就好-限制在15分钟写完-长的邮件25分钟-难点是讲清楚细节-比如软件调试bug-DFM-这里有些专业词汇 发现问题:发给客户的There are some qua ...

  7. TensorFlow函数:tf.ones_like

    tf.ones_like 函数 ones_like( tensor, dtype=None, name=None, optimize=True ) 定义在:tensorflow/python/ops/ ...

  8. ajax参考增删改查

    AJAX做增删改查详细!   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  9. 阻止ARP欺骗

    利用Look N Stop防火墙,防止arp欺骗 阻止网络执法官控制 网络执法官是利用的ARp欺骗的来达到控制目的的. ARP协议用来解析IP与MAC的对应关系,所以用下列方法可以实现抗拒网络执法官的 ...

  10. 5--Python入门--Python数据集合类型--字典

    列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但是set中没有重复的元素,常用于集合间的运算,用{}标识 字 ...