使用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的10个性能优化技巧
Jul 15 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodeJS微信分享
Dec 20 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
深入php处理整数函数的详解
2013/06/09 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
angularJS 入门基础
2015/02/09 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
python Pygame的具体使用讲解
2017/11/03 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
环境工程大学生自荐信
2013/10/21 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
村级四风对照检查材料
2014/08/24 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
python基础之匿名函数详解
2021/04/21 Python
windows安装python超详细图文教程
2021/05/21 Python
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
MySQL如何解决幻读问题
2021/08/07 MySQL
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server