这篇文章介绍了如何从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' ] }
包裹起来
除了minimist 和yargs ,还有以下库可以在 NodeJS 应用程序中解析命令行参数
- commander.js
- meow js
- vorpal js
也有记载,我们可以使用process.argv环境变量来读取不需要的库。