节点:如何访问标志而不是参数
Node: How to access flags, instead of arguments
在我的命令行应用程序中,我想打印出:
- 启动应用程序的整个命令行
- 各个标志和参数
- 两者都有可能。
从 process.argv
,我可以访问我是 运行 的应用程序([0]:node.exe
),我是 运行 的文件([1 ]: app.js
), 以及其余传递的参数。但是我传递的节点标志不是数组的一部分。
因此,例如,对于我的内存密集型应用程序,我的命令是:
node --max-old-space-size=10240 app.js 18 false
我的 process.argv
数组是:
0:'C:\Program Files\nodejs\node.exe'
1:'d:\Repos\exampleApp\app.js'
2:'18'
3:'false'
如您所见,没有引用 Node 标志 max-old-space-size
(真正的 V8 标志,已传递)
所以,最终,我正在尝试访问这个已通过的标志。
根据 the Node.js docs,看起来 process.execArgv
是提供这些标志的 属性。与 process.argv
一样,这将是一个数组。文档将这些称为“Node.js 特定的命令行选项”,而不是“Node.js 标志”。
因此,对于示例命令:
node --max-old-space-size=10240 app.js 18 false
...process.execArgv
数组将是:
0: '--max-old-space-size=10240'
在我的命令行应用程序中,我想打印出:
- 启动应用程序的整个命令行
- 各个标志和参数
- 两者都有可能。
从 process.argv
,我可以访问我是 运行 的应用程序([0]:node.exe
),我是 运行 的文件([1 ]: app.js
), 以及其余传递的参数。但是我传递的节点标志不是数组的一部分。
因此,例如,对于我的内存密集型应用程序,我的命令是:
node --max-old-space-size=10240 app.js 18 false
我的 process.argv
数组是:
0:'C:\Program Files\nodejs\node.exe'
1:'d:\Repos\exampleApp\app.js'
2:'18'
3:'false'
如您所见,没有引用 Node 标志 max-old-space-size
(真正的 V8 标志,已传递)
所以,最终,我正在尝试访问这个已通过的标志。
根据 the Node.js docs,看起来 process.execArgv
是提供这些标志的 属性。与 process.argv
一样,这将是一个数组。文档将这些称为“Node.js 特定的命令行选项”,而不是“Node.js 标志”。
因此,对于示例命令:
node --max-old-space-size=10240 app.js 18 false
...process.execArgv
数组将是:
0: '--max-old-space-size=10240'