如何在Nodejs应用程序中读取命令行参数?

698 阅读2分钟

这篇文章介绍了如何从nodejs应用程序中读取命令行参数的例子。

在Nodejs中,我们有很多方法可以从终端读取命令行参数。

  • 使用 process.argv 变量进行解析
  • 最小化库
  • yargs npm库

如何使用process argv变量读取命令行参数

process是一个环境变量,用来保存nodejs的环境信息。argv 参数存储命令行信息,并返回命令行参数的数组。

我创建了一个简单的javascript文件,只是打印了process.argv

command.js

console.log(process.argv)

并使用以下命令运行上述脚本

node  command.js argument

你看到的输出是

[ 'C:\\Program Files\\nodejs\\node.exe',  'B:\\nodeapp\\command.js',  'argument' ]

如你所见,process.argv返回三个元素的数组

第一个元素是带有完整绝对路径的节点命令 第二个元素是带有绝对路径的文件位置 第三个元素是参数,即你在终端传递的参数

下面是一个用forEach循环遍历命令行参数的例子

process.argv.forEach(function (item, index, temp) {
   console.log(index + ': ' + item);
});

输出

0: C:\Program Files\nodejs\node.exe
1: B:\nodeapp\command.js
2: kiran

用yargs解析命令行参数

yargs npm 是一个常用的、易于使用的库,用于编写自定义命令行命令。尽管目的不同,我们仍然可以在nodejs应用程序中使用,以解析命令行参数。

首先,使用以下命令安装库

npm i yargs

如果你想支持typescript,你可以按下面的方法安装类型定义。

npm i @types/yargs --save-dev

下面是读取命令参数的示例代码

const yargs = require('yargs/yargs')
const { hideBin } = require('yargs/helpers')
const argv = yargs(hideBin(process.argv)).argv

console.log(argv)

minimist解析命令行参数

minimist 是一个简单易用的库,用于解析来自命令行的终端参数。

首先,使用下面的命令安装minimist

npm i minimist

下面是一个使用 minimist npm 库的例子

var argv = require('minimist')(process.argv.slice(2));
console.log(argv);

和输出是

{ _: [ 'folder' ] }

包裹起来

除了minimistyargs ,还有以下库可以在 NodeJS 应用程序中解析命令行参数

  • commander.js
  • meow js
  • vorpal js

也有记载,我们可以使用process.argv环境变量来读取不需要的库。