节点:如何访问标志,而不是参数



在我的命令行应用程序中,我想打印出以下任一项:

  1. 启动应用程序的整个命令行
  2. 各个标志和参数
  3. 两者都有可能

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'

最新更新