当我们使用命令行执行JS脚本时,可以使用process.argv
属性来获取命令行中的参数。该属性返回一个字符串数组,数组中的第一个元素为Node.js的可执行文件路径,第二个元素为当前执行的JS文件路径,之后每个元素依次为传入的参数。下面是使用process.argv
获取命令行参数的过程:
获取命令行参数
语法
process.argv
示例
假设我们有这样的JS脚本example.js
:
console.log(process.argv);
我们在命令行中执行以下命令:
$ node example.js arg1 arg2 arg3
则会输出以下结果:
[
'/usr/local/bin/node',
'/Users/username/path/to/example.js',
'arg1',
'arg2',
'arg3'
]
可以看到,process.argv
返回一个包含5个元素的数组,前两个元素分别是Node.js可执行文件路径和当前执行的JS文件路径,后面三个元素是我们传入的参数。
传入参数解析
由于process.argv
返回的数组元素均为字符串类型,传入的参数可能需要进行解析。下面提供两种常见的参数解析方式:
1. yargs模块
yargs是一个用于解析命令行参数的模块,它提供了一系列的功能,例如参数别名、参数默认值、参数描述等等。
安装yargs
yargs模块可以使用npm安装:
$ npm install yargs
示例
假设我们有如下的js脚本example.js
:
const argv = require('yargs').argv;
console.log('param1:', argv.param1);
console.log('param2:', argv.param2);
在命令行执行以下命令:
$ node example.js --param1=value1 --param2=value2
则会输出以下结果:
param1: value1
param2: value2
可以看到,使用yargs模块可以方便地解析命令行参数,并获取到对应的参数值。在上面的示例中,--param1=value1
和--param2=value2
都是命令行参数,我们可以通过argv.param1
和argv.param2
获取到它们的值。
2. minimist模块
minimist是一个轻量级的命令行参数解析模块,它将命令行参数解析为一个对象,可以方便地获取参数值。
安装minimist
minimist模块可以使用npm安装:
$ npm install minimist
示例
假设我们有如下的js脚本example.js
:
const argv = require('minimist')(process.argv.slice(2));
console.log('param1:', argv.param1);
console.log('param2:', argv.param2);
在命令行执行以下命令:
$ node example.js --param1=value1 --param2=value2
则会输出以下结果:
param1: value1
param2: value2
可以看到,使用minimist模块也可以方便地解析命令行参数,并获取到对应的参数值。在上面的示例中,我们通过process.argv.slice(2)
剔除了前两个参数,将剩下的参数作为minimist模块的输入,然后通过argv.param1
和argv.param2
获取到参数的值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node获取命令行中的参数详解 - Python技术站