Remove command line parameters consumed by Electron

t2a7ltrp  于 4个月前  发布在  Electron
关注(0)|答案(2)|浏览(89)

预检清单

  • 我已阅读了此项目的 Contributing Guidelines
  • 我同意遵循此项目遵循的 Code of Conduct
  • 我在问题跟踪器中搜索了一个与我想提交的功能请求相匹配的问题,但没有成功。

问题描述

与 Node 不同,Electron 不会从 process.argv 中删除它消耗的命令行参数。这使得解析特定于应用程序的命令行参数变得更加困难。
示例:
test.js:

console.log(process.argv)

Node vs Electron:

> node --inspect=9999 test.js 
Debugger listening on ws://127.0.0.1:9999/3dbbba51-683a-49e9-a098-48fc6898c154
For help, see: https://nodejs.org/en/docs/inspector
[
  '/home/bspot/.nvm/versions/node/v12.14.1/bin/node',
  '/home/bspot/test.js'
]

> electron --inspect=9999 test.js 
Debugger listening on ws://127.0.0.1:9999/59eb07a2-eed1-479d-aa91-cea83df6c590
For help, see: https://nodejs.org/en/docs/inspector
[
  '/home/bspot/.nvm/versions/node/v12.14.1/lib/node_modules/electron/dist/electron',
  '--inspect=9999',
  'test.js'
]

建议的解决方案

process.argv 中删除 Electron 消耗的命令行参数。

考虑过的替代方案

我目前的解决方法是在 process.argv 中搜索主脚本文件名,并仅解析其后的参数,这在主脚本的文件名或相对路径更改的情况下可能是潜在的错误来源。

b5buobof

b5buobof1#

与Node相比,Electron不会从process.argv中删除它消耗的命令行参数。这使得解析特定于应用程序的命令行参数变得更加困难。

我认为这是预期的行为,现在更改这个可能会导致不可接受的破坏性变化。而且从技术上讲,这也并非完全可能,因为Electron在代码库的各个地方“消耗”了node参数、chromium参数以及我们自己的一系列参数。在这里,我认为所有参数都应该在process.argv中可用。

fae0ux8s

fae0ux8s2#

当前行为是好的。任何更改都可能破坏我的应用程序。

相关问题