使用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中使用monk访问mongodb
Jul 06 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
nodejs处理图片的中间件node-images详解
May 08 NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 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中一个有意思的日期逻辑处理
2012/03/25 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
一段实时更新的时间代码
2006/07/07 Javascript
JS array 数组详解
2009/03/22 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
Python Http请求json解析库用法解析
2020/11/28 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
新娘父亲婚礼致辞
2014/01/16 职场文书
教师党员一句话承诺
2014/03/28 职场文书
募捐倡议书
2014/04/14 职场文书
市级三好学生评语
2014/12/29 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
学校隐患排查制度
2015/08/05 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript