使用nodejs开发cli项目实例

 更新时间:2015年06月03日 09:04:50   投稿:junjie  
这篇文章主要介绍了使用nodejs开发cli项目实例,本文讲解使用generator-cli-starter实现cli项目的开发,需要的朋友可以参考下

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

效果如下:

试个常见命令?

我们接下来就开发一个类似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

hi list

复制代码 代码如下:

hi list -a

如何发布

首先需要在Github上创建一个项目,并把我们刚才写的代码同步上去。

然后通过npm publish命令将你的cli发布到npm。

然后其他用户就可以通过npm install -g [项目名称]将你的命令安装到本地使用了

相关文章

  • Node.js的项目构建工具Grunt的安装与配置教程

    Node.js的项目构建工具Grunt的安装与配置教程

    Grunt是为Node打造的项目构建工具,相当于C/C++世界中的makefile,可以执行像压缩、编译、单元测试、代码检查以及打包发布的任务,下面我们就来一起看一下Node.js的项目构建工具Grunt的安装与配置教程:
    2016-05-05
  • electron原理,以及electron生成可执行文件的方法实例分析

    electron原理,以及electron生成可执行文件的方法实例分析

    这篇文章主要介绍了electron原理,以及electron生成可执行文件的方法,结合实例形式分析了electron原理以及electron生成可执行文件的具体操作步骤、实现方法与相关注意事项,需要的朋友可以参考下
    2023-04-04
  • 详解使用nodeJs安装Vue-cli

    详解使用nodeJs安装Vue-cli

    这篇文章主要介绍了详解使用nodeJs安装Vue-cli,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Node.js中Playwright库使用指南

    Node.js中Playwright库使用指南

    Playwright 是微软开源的一个用于 Web 测试和自动化的Node.js 库,通过一个 API,可以自动化运行在Chrome,Edge、Firefox和Safari等浏览器上,下面我们就来看看它的具体使用吧
    2024-11-11
  • 浅谈手写node可读流之流动模式

    浅谈手写node可读流之流动模式

    这篇文章主要介绍了浅谈手写node可读流之流动模式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • node内存泄漏排查与修复过程

    node内存泄漏排查与修复过程

    之前开发了一个node接口,该接口使用canvas绘制产品图提供给java端使用,在运行了一段时间后发现了内存泄漏问题,本文浅记下修复过程,文章通过图文介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • Nodejs模块的调用操作实例分析

    Nodejs模块的调用操作实例分析

    这篇文章主要介绍了Nodejs模块的调用操作,结合实例形式分析了nodejs模块的定义与调用相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • 基于Koa(nodejs框架)对json文件进行增删改查的示例代码

    基于Koa(nodejs框架)对json文件进行增删改查的示例代码

    这篇文章主要介绍了基于Koa(nodejs框架)对json文件进行增删改查的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • array-uniq的安装和使用方法

    array-uniq的安装和使用方法

    array-uniq是一个非常实用的NPM包,用于在JavaScript中创建不含重复元素的数组,它提供了一个简单而有效的方法来去除数组中的重复项,本文将介绍如何安装和使用array-uniq来清理你的数组数据,需要的朋友可以参考下
    2024-06-06
  • NodeJS服务器实现gzip压缩的示例代码

    NodeJS服务器实现gzip压缩的示例代码

    这篇文章主要介绍了NodeJS服务器实现gzip压缩的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论