返回

用node原生命令行获取cli参数

前端

当使用node开发命令行应用程序时,通常需要获取用户在命令行中传递的参数。Node.js提供了多种获取CLI参数的方法,包括使用process.argv属性和命令行解析库。

process.argv

process.argv属性是一个包含命令行参数数组的数组。第一个元素是node可执行文件,第二个元素是正在执行的脚本。其余元素是传递给脚本的参数。

以下示例演示了如何使用process.argv获取CLI参数:

const args = process.argv;
console.log(args);

输出:

[ '/usr/local/bin/node', '/home/user/project/script.js', 'arg1', 'arg2' ]

命令行解析库

命令行解析库提供了更方便的方法来解析CLI参数。它们允许您定义参数的类型、默认值和帮助文本。

以下是一些流行的命令行解析库:

使用commander获取CLI参数

commander是一个功能齐全的命令行解析库,提供了一个简单的API来定义命令、选项和参数。

以下示例演示了如何使用commander获取CLI参数:

const program = require('commander');

program
  .option('-f, --file <type>', 'Input file name', 'input.txt')
  .option('-o, --output <type>', 'Output file name', 'output.txt')
  .parse(process.argv);

console.log(program.file); // 'input.txt'
console.log(program.output); // 'output.txt'

使用yargs获取CLI参数

yargs是一个强大的命令行解析库,提供了一个可扩展的API来自定义参数解析。

以下示例演示了如何使用yargs获取CLI参数:

const argv = require('yargs')
  .option('file', {
    alias: 'f',
    description: 'Input file name',
    type: 'string',
    default: 'input.txt'
  })
  .option('output', {
    alias: 'o',
    description: 'Output file name',
    type: 'string',
    default: 'output.txt'
  })
  .argv;

console.log(argv.file); // 'input.txt'
console.log(argv.output); // 'output.txt'

结论

获取node命令行参数有多种方法,包括使用process.argv属性和命令行解析库。process.argv属性提供了一种简单的方法来访问原始参数数组,而命令行解析库提供了更方便和强大的方法来解析参数。

选择哪种方法取决于应用程序的具体要求。对于简单的应用程序,process.argv属性可能就足够了。对于更复杂应用程序,建议使用命令行解析库。