📜  如何在 Node.js 中读取命令行参数?(1)

📅  最后修改于: 2023-12-03 15:38:22.013000             🧑  作者: Mango

如何在 Node.js 中读取命令行参数?

在 Node.js 中,可以通过 process.argv 来获取命令行参数。process.argv 返回一个数组,其中包含 Node.js 进程启动时传递给它的命令行参数。

简单例子

下面的代码片段展示了如何使用 process.argv 来获取命令行参数。

// index.js
const args = process.argv;

console.log(args);

在命令行中执行以下命令:

$ node index.js arg1 arg2 arg3

将会输出以下内容:

[
  '/usr/local/bin/node',
  '/User/path/to/file/index.js',
  'arg1',
  'arg2',
  'arg3'
]
分离 node 和脚本参数

process.argv 中的前两个元素通常是 Node 可执行文件和当前脚本的路径,我们可以使用 slice 方法创建一个新数组,仅包含脚本参数。

// index.js
const args = process.argv.slice(2);

console.log(args);

在执行以下命令:

$ node index.js arg1 arg2 arg3

将输出以下内容:

[
  'arg1',
  'arg2',
  'arg3'
]
通过选项获取参数

通常,我们希望使用选项标志来从命令行中获取参数。process.argv 可以很容易地支持这种用法。

假设我们希望 -f 标志作为一个文件名选项,并且 -c 标志作为一个配置文件选项。 这时候可以使用 minimist 模块。

// index.js
const args = require('minimist')(process.argv.slice(2));

console.log(args);

在执行以下命令:

$ node index.js -f file.txt -c config.json

将输出以下内容:

{ 
  f: 'file.txt',
  c: 'config.json',
  _: []
}

这个对象包含 fc 类型的选项,以及一个 _ 数组包含了未识别的参数。

结论

使用 process.argv,我们可以轻松地从命令行中获取参数。 如果需要支持选项标志,则可以使用 minimist 或类似的模块来实现。