使用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的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
WordPress中"无法将上传的文件移动至"错误的解决方法
2015/07/01 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
简单了解Python生成器是什么
2019/07/02 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
采购员岗位职责
2013/11/15 职场文书
语文教学随笔感言
2014/02/18 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
公务员培的训心得体会
2014/09/01 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
高二语文教学反思
2016/02/16 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python