使用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 相关文章推荐
使用forever管理nodejs应用教程
Jun 03 NodeJs
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
nodejs微信开发之授权登录+获取用户信息
Mar 17 NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
初品cakephp 入门基础
2012/02/16 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
php常用数学函数汇总
2014/11/21 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
python连接字符串的方法小结
2015/07/13 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
python wsgiref源码解析
2021/02/06 Python
二年级体育教学反思
2014/01/15 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
创意广告词
2014/03/17 职场文书
保密工作责任书
2014/04/16 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python