微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

在我的命令行应用程序中,我想打印:

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

process.argv,我可以访问我正在运行的应用程序 ([0]: node.exe)、我正在运行的文件 ([1]: app.js),以及其余的传递参数。但是,我传递的 Node 标志不是数组的一部分。

例如,对于我的内存密集型应用程序,我的命令是:

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'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。