package.json的自定义脚本

229 阅读1分钟

process.argv 是 Node.js 环境中一个全局变量,它是一个包含命令行参数的数组。数组的前两个元素通常是:

  1. process.argv[0]:Node.js 的可执行文件路径。
  2. 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]
]