使用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 相关文章推荐
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
nodejs中转换URL字符串与查询字符串详解
Nov 26 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
nodejs批量下载图片的实现方法
May 19 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 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 动态添加记录
2009/03/10 PHP
PHP 面向对象详解
2012/09/13 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
python for和else语句趣谈
2019/07/02 Python
Django REST framework内置路由用法
2019/07/26 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Django URL参数Template反向解析
2020/11/24 Python
python爬虫工具例举说明
2020/11/30 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
经济管理专业毕业生推荐信
2013/11/11 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
公司薪酬管理制度
2014/01/31 职场文书
小学生元旦广播稿
2014/02/21 职场文书
经典促销广告词大全
2014/03/19 职场文书
华清池导游词
2015/02/02 职场文书
鲁迅故里导游词
2015/02/05 职场文书
二年级数学教学反思
2016/02/16 职场文书
element多个表单校验的实现
2021/05/27 Javascript