如何在电子中传递命令行参数

Hus*_*aik 10 node.js electron

我刚开始使用电子.我怀疑如何在electronnpm start用来运行电子时传递命令行参数.

Node.js我使用:node server.js one two=three four 命令提示符:

var arguments = process.argv.slice(2);
arguments.forEach(function(val,index, array) {
  console.log(index + ': ' + val);
}); 
Run Code Online (Sandbox Code Playgroud)

Node.js工作.我需要知道如何才能在电子工作中完成这项工作.

有人可以为此提供解决方案吗?

Tri*_*i29 13

传递参数的方式是一样的,你唯一需要注意的是电子路径.在package.json其书面npm开始将执行electron main.js.因此,您必须明确地执行此命令并使用"正确的电子路径"传递参数,即./node_modules/.bin/electron.那么命令就是

./node_modules/.bin/electron main.js argv1 argv2
Run Code Online (Sandbox Code Playgroud)

这些参数可以访问由process.argvmain.js

如果希望您在应用程序中访问这些参数,则可以执行以下操作:

1.在你的main.js中定义一个变量

     global.sharedObject = {prop1: process.argv}
Run Code Online (Sandbox Code Playgroud)

2.在你的应用程序中只需linclude remote并使用它 sharedObject

    var remote = require('electron').remote,
      arguments = remote.getGlobal('sharedObject').prop1;

    console.log(arguments);
Run Code Online (Sandbox Code Playgroud)

3.输出量将是 ["argv1", "argv2"]

  • 您可以直接使用`require('electron').remote.process.argv`来获取主进程的参数. (12认同)
  • 就我而言,使用 Electron v10.x 时,我在主进程中收到 `remote` is undefined 错误。我能够通过在主进程中安装 Electron 的进程 https://www. Electronjs.org/docs/api/process 来访问 CLI 参数,您可以通过 `const process = require('process');` `args = 访问参数进程.argv` (2认同)