zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

如何在 JavaScript 中构建命令行应用程序

2023-03-14 22:31:45 时间

安装节点

要使用 Commander.js 库,您必须安装 Node.js。在 Linux 上,您可以使用包管理器安装 Node。例如,在 Fedora、CentOS、Mageia 等上:

$ sudo dnf install nodejs

安装 Commander.js

要安装 Commander.js,请使用以下npm 命令:

$ npm install commander

向 JavaScript 代码添加库

在 JavaScript 中,您可以使用require 关键字将库包含(或导入,如果您习惯使用 Python)到您的代码中。创建一个名为的文件example.js 并在您喜欢的文本编辑器中打开它。将此行添加到顶部以包含 Commander.js 库:

const { program } = require('commander');

JavaScript 中的选项解析

解析选项必须做的第一件事是定义应用程序可以接受的有效选项。Commander.js 库可让您定义短选项和长选项,并附有帮助说明每个选项的目的的有用信息。

program
  .description('A sample application to parse options')
  .option('-a, --alpha', 'Alpha')
  .option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');

第一个选项,我称之为--alpha (-a 简称),是一个布尔开关:它要么存在,要么不存在。它不需要任何参数。我称之为--beta (-b 简称)的第二个选项接受一个参数,甚至在您没有提供任何内容时指定一个默认值。

访问命令行数据

定义有效选项后,您可以使用长选项名称引用这些值:

program.parse();

const options = program.opts();
console.log('Options detected:');

if (options.alpha) console.log('alpha');
 
const beta = !options.beta ? 'no' : options.beta;
console.log('beta is: %s', beta);

运行应用程序

尝试使用node 命令运行它,首先没有选项:

$ node ./example.js 
Options detected: 
beta is: Foo

beta 在没有用户覆盖的情况下使用的默认值。

再次运行它,这次使用以下选项:

$ node ./example.js --beta hello --alpha
Options detected: 
alpha
beta is: hello

这一次,测试脚本成功检测到了 option --alpha,以及--beta 用户提供的值的option 。

选项解析

以下是完整的演示代码供您参考:

const { program } = require('commander');

program
  .description('A sample application to parse options')
  .option('-a, --alpha', 'Alpha')
    .option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');

program.parse();

const options = program.opts();
console.log('Options detected:');

console.log(typeof options);

if (options.alpha) console.log(' * alpha');
const beta = !options.beta ? 'no' : options.beta;
console.log(' * beta is: %s', beta);