使用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处理Express中异步错误
Mar 26 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
nodejs实现一个word文档解析器思路详解
Aug 14 NodeJs
NodeJS加密解密及node-rsa加密解密用法详解
Oct 12 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 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使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
神经网络python源码分享
2017/12/15 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
python 进程池pool使用详解
2020/10/15 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
我的大学生活演讲稿
2014/04/25 职场文书
初中英语课后反思
2014/04/25 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
2014年司机工作总结
2014/11/21 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Linux安装apache服务器的配置过程
2021/11/27 Servers
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers