args._[0] 中的 ._[0] 是做什么的?

What does ._[0] in args._[0] do?

我一直在试验一些节点代码(试图构建一个小的 cli)并遇到了这个对我来说很陌生的下划线符号。只是在命令行中使用不同的参数,

我意识到它类似于 "extract" 分配给 "template" 键的第一个字符串,但我以前从未见过,也找不到关于它的文档。这是原生 javascript/node 的东西吗?

import arg from 'arg';

function parseArgumentsIntoOptions(rawArgs) {
 const args = arg(
   {
     '--git': Boolean,
     '--yes': Boolean,
     '--install': Boolean,
     '-g': '--git',
     '-y': '--yes',
     '-i': '--install',
   },
   {
     argv: rawArgs.slice(2),
   }
 );
 return {
   skipPrompts: args['--yes'] || false,
   git: args['--git'] || false,
   template: args._[0],                                // <<<<< Right here
   runInstall: args['--install'] || false,
 };
}

我没有安装 lodash 或下划线。 取自这个 awesome tutorial.

来自 arg 库的文档:

All parameters that aren't consumed by options (commonly referred to as "extra" parameters) are added to result._, which is always an array (even if no extra parameters are passed, in which case an empty array is returned).

所以args._[0]是第一个额外的参数。

没关系。我第一次没有点击 npm arg 库,这确实是我 只有 导入的模块,因为出于某种原因我用谷歌搜索了 node arg

下划线实际上只是 "container" 用于您指定的任何键未使用的其余参数:

Parameters that aren't consumed by options (commonly referred to as "extra" parameters) are added to result._