nodejs中命令行中参数的获取和解析

时间:2022-01-10 19:45:46

首先,假设有如下的命令行 node  abc.js arg1 arg2 arg3,现在想在abc.js中获取后面的参数arg1、arg2、arg3…

var args = process.argv.splice(2);

process是一个全局对象,argv返回的是一组包含命令行参数的数组。第一项为”node”,第二项为执行的js的完整路径和文件,后面是附加在命令行后的所有参数。

其次,nodejs中经常利用minimist模块,minimist 是一个node 模块,用来做命令行参数解析。

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

比如,解析

 $ls -a avalue -b bvalue arg

效果简单明了:

argv.a=avalue

argv.b=bvalue
argv._[0]=ls
argv._[1]=arg

这里的-a,-b 都是一个string类型的参数,值分别为 avalue,bvalue 。具体的命令格式和参数类型,需要自己去看看此模块的readme。

//var objFile = defaultValue(argv._[0], defaultValue(argv.i, argv.input));
//var outputPath = defaultValue(argv._[1], defaultValue(argv.o, argv.output));
//var binary = defaultValue(defaultValue(argv.b, argv.binary), false);
//var embed = defaultValue(defaultValue(argv.e, argv.embed), false);
//var technique = defaultValue(argv.t, argv.technique);
参考:(http://www.thinksaas.cn/group/topic/379078/)