使用nodejs开发cli项目实例


Posted in NodeJs onJune 03, 2015

1.分分钟使用默认选项安装完nodejs
2.分分钟使用sudo npm install -g yo安装完yeoman
3.通过sudo npm install -g generator-cli-starter安装cli开发脚手架

OK, 现在我们可以使用yo cli-starter命令开始我们cli开发之旅了

创建cli项目

yo cli-starter

按照提示输入项目名称、命令名称,完成cli项目创建。后续的教程中我们将使用hi作为你的命令名称,如果你使用了其他命令名称,请注意替换

Let's try first

现在命令行中输入如下命令(如果你用的不是hi,注意替换)

hi

效果如下:

使用nodejs开发cli项目实例

试个常见命令?

我们接下来就开发一个类似ls, ls -all的命令,这里面需要用到一个node模块commander,先来安装一下:

进入该项目根目录执行npm install --save commander,

然后用你喜欢的editor打开bin/hi.js,并用以下内容替换原先的代码:

#!/usr/bin/env node
'use strict';
var program = require('commander');
program

    .version('0.0.1');//声明hi的版本号
program

    .command('list')//声明hi下有一个命令叫list

    .description('list files in current working directory')//给出list这个命令的描述

    .option('-a, --all', 'Whether to display hidden files')//设置list这个命令的参数

    .action(function(options) {//list命令的实现体

        var fs = require('fs');

        //获取当前运行目录下的文件信息

        fs.readdir(process.cwd(), function(err, files) {

            var list = files;

            if (!options.all) {//检查用户是否给了--all或者-a的参数,如果没有,则过滤掉那些以.开头的文件

                list = files.filter(function(file) {

                    return file.indexOf('.') !== 0;

                });

            }

            console.log(list.join(' '));//控制台将所有文件名打印出来

        });

    });
program.parse(process.argv);//开始解析用户输入的命令

OK,现在来试试我们刚写好的命令吧,

hi -V

使用nodejs开发cli项目实例

hi list

使用nodejs开发cli项目实例

hi list -a

使用nodejs开发cli项目实例

如何发布

首先需要在Github上创建一个项目,并把我们刚才写的代码同步上去。

然后通过npm publish命令将你的cli发布到npm。

然后其他用户就可以通过npm install -g [项目名称]将你的命令安装到本地使用了

NodeJs 相关文章推荐
Nodejs学习笔记之Global Objects全局对象
Jan 13 NodeJs
nodejs实例解析(输出hello world)
Jan 03 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 #NodeJs
nodejs实现获取某宝商品分类
May 28 #NodeJs
Nodejs实现批量下载妹纸图
May 28 #NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 #NodeJs
浅谈NodeJS中require路径问题
May 07 #NodeJs
NodeJs中的VM模块详解
May 06 #NodeJs
nodejs简单实现中英文翻译
May 04 #NodeJs
You might like
也谈 PHP 和 MYSQL
2006/10/09 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
20个最新的jQuery插件
2012/01/13 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
window下eclipse安装python插件教程
2017/04/24 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
如何通过jdbc调用存储过程
2012/04/19 面试题
计算机应用专业毕业生求职信
2013/10/24 职场文书
外贸业务员求职信范文
2013/12/12 职场文书
大学毕业自我评价
2014/02/02 职场文书
yy司仪主持词
2014/03/22 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
新闻人物通讯稿
2014/10/09 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
Python爬取某拍短视频
2021/06/11 Python