前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 JavaScript 中构建命令行应用程序

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

原创
作者头像
KINGLIFE
修改2021-11-11 14:55:47
2.2K0
修改2021-11-11 14:55:47
举报
文章被收录于专栏:daba

安装节点

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

代码语言:javascript
复制
$ sudo dnf install nodejs

安装 Commander.js

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

代码语言:javascript
复制
$ npm install commander

向 JavaScript 代码添加库

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

代码语言:javascript
复制
const { program } = require('commander');

JavaScript 中的选项解析

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

代码语言:javascript
复制
program
  .description('A sample application to parse options')
  .option('-a, --alpha', 'Alpha')
  .option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');

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

访问命令行数据

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

代码语言:javascript
复制
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 命令运行它,首先没有选项:

代码语言:javascript
复制
$ node ./example.js 
Options detected: 
beta is: Foo

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

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

代码语言:javascript
复制
$ node ./example.js --beta hello --alpha
Options detected: 
alpha
beta is: hello

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

选项解析

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

代码语言:javascript
复制
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);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装节点
  • 安装 Commander.js
  • 向 JavaScript 代码添加库
  • JavaScript 中的选项解析
  • 访问命令行数据
  • 运行应用程序
  • 选项解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档