跟着老司机玩转Node命令行

这篇博客介绍了如何使用Node.js进行命令行工具开发,重点讲解了commander库的使用,包括命令定义、参数解析、全局运行,还提到了自定义帮助信息。此外,还介绍了inquirer库,用于实现命令行交互,并简单展示了chalk库美化命令行输出的效果。
摘要由CSDN通过智能技术生成

基础准备

1.新建一个项目,打开cmd命令,执行npm init,创建package.json
2.在根目录下创建一个不带后缀的系统文件,作为主入口文件
3.安装本文所涉及到的模块commander、inquirer、chalk,在根目录下执行 npm install commander inquirer chalk –save-dev,这时候会看到根目录下多了一个node_modules目录,里面有刚刚安装的几个模块,package.json里面devDependencies依赖了这几个模块,如下图

根目录

package.json

 
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    
{
"name": "app",
"version": "1.0.0",
"description": "玩转命令行开发",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "ykg",
"license": "ISC",
"devDependencies": {
"chalk": "^1.1.3",
"commander": "^2.9.0",
"inquirer": "^1.1.2"
}
}

主体内容

我们先来认识一下commander吧

commander 简介

呃~~官方时刻到了哈:commander灵感来自 Ruby,它提供了用户命令行输入和参数解析的强大功能,可以帮助我们简化命令行开发。
根据其官方的描述,具有以下特性:

  • 参数解析
  • 强制多态
  • 可变参数
  • Git 风格的子命令
  • 自动化帮助信息
  • 自定义帮助等

一个简单的实例

下面我们通过一个简单的实例来了解一下它的基本语法吧

 
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
    
const program = require( 'commander')
const inquirer = require( 'inquirer')
const chalk = require( 'chalk')
program
.command( 'module')
.alias( 'm')
.description( '创建新的模块')
.option( '-a, --name [moduleName]', '模块名称')
.action( option => {
console.log( 'Hello World')
//为什么是Hello World 给你个眼神,自己去体会...
})
program.parse(process.argv)

执行一下看看效果吧!$ node app.js app (请各位看官自行体会这种执行方式哈)
//输出结果 Hello World

全局方式运行

我们可以通过一些配置,然后以 模块名 + command的方式运行,实现这种方式分三步走:

  • 配置package.json的bin字段。bin字段有啥用呢?它可以用来存放一个可执行的文件,如下配置所示

     
          
    1
    2
    3
     
          
    "bin": {
    "app": "app"
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值