Commander.js 是一个用于构建命令行界面(CLI)的 Node.js 库。在 Commander.js 中,option 和 command 是两个主要的概念。
-
Option(选项): Option 是用于指定命令行中的可选参数或标志的设置。它们以可选的方式影响程序的行为。Option 通常由一个或多个标志(flags)和一个描述性的文本组成。
例如:
javascriptCopy code program .option('-p, --port <port>', '设置端口号') .option('-H, --host <host>', '设置主机') .option('-v, --verbose', '启用详细输出');在上面的示例中,
.option()方法用于定义不同的选项。每个选项由一个标志和一个描述性的文本组成。标志由一个短标志和一个长标志组成,它们之间用逗号分隔。<port>和<host>是用于指定参数值的占位符。-v, --verbose是一个不带参数值的选项。当在命令行中使用这些选项时,用户可以使用相应的标志来传递参数值。例如,
-p 3000或--port 3000可以用于设置端口号为 3000。 -
Command(命令): Command 是用于定义命令行中的命令的设置。它们通常用于指定程序应执行的操作或任务。Command 可以有自己的选项和参数。
例如:
javascriptCopy code program .command('start <name>') .description('启动应用程序') .option('-p, --port <port>', '设置端口号') .action((name, options) => { console.log(`启动应用程序 ${name}`); if (options.port) { console.log(`使用端口号 ${options.port}`); } });在上面的示例中,
.command()方法用于定义一个名为 "start" 的命令,其后跟一个<name>参数。.option()方法用于定义该命令的选项。.action()方法指定命令被执行时的操作。当在命令行中输入
start example-app -p 3000时,"start" 命令将被触发,并将参数 "example-app" 传递给.action()中的回调函数。选项-p或--port的参数值将作为options对象的属性传递给回调函数。
总结来说,Options(选项)用于指定程序的设置和配置,而 Commands(命令)用于指定程序应执行的具体操作或任务。通过使用这些概念,Commander.js 提供了一种方便的方式来创建强大的命令行界面工具。