使用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基本语法和类型
Feb 13 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 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类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
Python函数学习笔记
2008/10/07 Python
Python操作MySQL简单实现方法
2015/01/26 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
Python @property原理解析和用法实例
2020/02/11 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
大学生求职信例文
2014/06/29 职场文书
机械专业求职信范文
2014/07/15 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
mysql创建存储过程及函数详解
2021/12/04 MySQL
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis