process.argv 是 Node.js 环境中一个全局变量,它是一个包含命令行参数的数组。数组的前两个元素通常是:
process.argv[0]:Node.js 的可执行文件路径。process.argv[1]:当前执行的 JavaScript 文件的路径。
其余的元素是命令行传入的参数。例如,当你运行如下命令:
node script.js arg1 arg2 arg3
process.argv 的值会是一个包含以下元素的数组:
[
'/path/to/node', // process.argv[0]
'/path/to/script.js', // process.argv[1]
'arg1', // process.argv[2]
'arg2', // process.argv[3]
'arg3' // process.argv[4]
]
为了在 Oclif 应用程序中只获取命令行参数(而不包括 Node.js 和脚本路径),通常会使用 process.argv.slice(2)。slice(2) 方法从数组的第三个元素开始创建一个新的数组,因此它会排除前两个元素(Node.js 可执行文件路径和脚本路径)。
例如,如果你运行:
./bin/dev.js scan arg1 arg2
process.argv.slice(2) 的值会是一个包含以下元素的数组:
[
'scan', // process.argv.slice(2)[0]
'arg1', // process.argv.slice(2)[1]
'arg2' // process.argv.slice(2)[2]
]