commander插件

commander 是一个 Node.js 命令行界面的解决方案,可以帮助开发者快速构建命令行工具。它提供了一组简单易用的 API,可以帮助开发者定义命令行参数、选项和子命令,并解析命令行参数,方便开发者编写命令行工具。
使用 commander 插件,可以轻松地定义命令行参数、选项和子命令,并在命令行中解析这些参数。

1.首先添加commander插件

npm i commander

2.添加option:

#!/usr/bin/env node


//commander插件,用于解析命令行参数
const { program } = require('commander');

//当在终端使用 showtime -s 或者 showtime --save时会显示save something
//这个方法就是添加帮助项,<save>表示传递的参数,使用时应该这样使用 showtime -s xxxx 或者 showtime --save xxxx
program.option('-s --save <save>', 'save something');

在命令行里输入showtime -s就会

error: option '-s --save <save>' argument missing

3.用action来执行

#!/usr/bin/env node

//commander插件,用于解析命令行参数
const { program } = require('commander');

program
    .command('show')
    .description('显示时间')
    .action(() => {
        const now = new Date();
        console.log(`现在的时间是: ${now.toLocaleTimeString()}`);
    });

program.parse(process.argv);

输出:

PS D:\MyScript> showtime show
现在的时间是: 下午3:34:26

4.关于process.argv

process.argv是一个包含命令行参数的数组。在Node.js中,当我们在命令行中运行一个脚本时,可以在命令行中传递参数,这些参数会被存储在process.argv数组中。

process.argv数组的前两个元素是固定的,分别是Node.js的可执行文件路径和当前脚本的文件路径。从第三个元素开始,就是命令行中传递的参数。

例如:

console.log(`process.argv[0]: ${process.argv[0]}`)
console.log(`process.argv[1]: ${process.argv[1]}`)
console.log(`process.argv[2]: ${process.argv[2]}`)
console.log(`process.argv[3]: ${process.argv[3]}`)

输出:(中间的文件夹名用bala…bala省略了)

process.argv[0]: D:\bala...bala\nodeTool\node.exe
process.argv[1]: C:\Users\bala...bala\showTime.js
process.argv[2]: show
process.argv[3]: undefined

5.关于program.parse(process.argv)

program.parse(process.argv)是commander库中的一个方法,用于解析命令行参数。在使用commander库时,我们通常会定义一组命令、选项和参数,然后使用program.parse(process.argv)方法解析命令行参数,根据参数执行不同的逻辑。

6.关于action

action 是 commander 包中 command 对象的一个方法,用于定义当命令被调用时将执行的函数。

7.关于cwd

要获取程序运行时的当前工作目录,可以使用 Node.js 的 process.cwd() 方法。这个方法返回一个字符串,表示当前工作目录的路径。

console.log(`process.cwd: ${process.cwd()}`)

输出:

process.cwd: D:\bala...bala
  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值