在我的命令行应用程序中,我想打印出以下任一项:
- 启动应用程序的整个命令行
- 各个标志和参数
- 两者都有可能
从process.argv
,我可以访问正在运行的应用程序([0]:node.exe
(、正在运行的文件([1]:app.js
(以及其他传递的参数。但是,我传递的Node标志不是数组的一部分。
因此,例如,对于我的内存密集型应用程序,我的命令是:
节点--最大旧空间大小=10240 app.js 18错误
我的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标志,它被传递(
因此,最终,我将尝试访问这个已通过的标志。
根据Node.js文档,process.execArgv
似乎是提供这些标志的属性。与process.argv
一样,这将是一个数组。文档将这些称为";Node.js-特定命令行选项";,而不是";Node.js标志";。
因此,对于示例命令:
节点--最大旧空间大小=10240 app.js 18错误
。。。process.execArgv
阵列将是:
0: '--max-old-space-size=10240'