- Published on
如何在Node.js程序中传递和接收命令行参数?
- Authors
- Name
在Node.js开发中,经常需要通过命令行传递参数来控制程序的行为。本篇博客将详细介绍如何在Node.js程序中传递和接收命令行参数,并使用command-line-args
库来简化这个过程。
基础用法
首先,我们来看看如何使用command-line-args
库来设置命令行参数。可以使用以下多种方式传递参数:
$ example --verbose --timeout=1000 --src one.js --src two.js
$ example --verbose --timeout 1000 --src one.js two.js
$ example -vt 1000 --src one.js two.js
$ example -vt 1000 one.js two.js
为了接收这些参数,首先需要创建一个选项定义列表,用于描述应用程序接受的选项。type
属性是一个设置函数,传递的值会经过这个函数处理,使你能完全控制接收的值。
const optionDefinitions = [
{ name: 'verbose', alias: 'v', type: Boolean },
{ name: 'src', type: String, multiple: true, defaultOption: true },
{ name: 'timeout', alias: 't', type: Number }
];
接下来,使用commandLineArgs()
方法解析这些选项:
const commandLineArgs = require('command-line-args');
const options = commandLineArgs(optionDefinitions);
此时,options
对象将会如下所示:
{
src: [
'one.js',
'two.js'
],
verbose: true,
timeout: 1000
}
高级用法
除了上述的典型用法外,command-line-args
库还支持更高级的语法形式。
git风格的命令语法
可以使用如下形式的命令:
$ executable <command> [options]
例如:
$ git commit --squash -m "This is my commit message"
docker风格的命令和子命令语法
可以使用如下形式的命令:
$ executable <command> [options] <sub-command> [options]
例如:
$ docker run --detached --image centos bash -c yum install -y httpd
生成使用指南
当传递--help
选项时,通常会生成一个使用指南。这可以使用command-line-usage
库来实现。以下是一些示例,详细的创建方法可参考官方文档。
一个典型的使用指南示例:
polymer-cli 的使用指南也是一个很好的参考实例。
进一步阅读
如果你想了解更多,请参阅wiki获取更多示例和文档。