How to pass command line argument in electron

40.2k Views Asked by At

I just started using electron. I have a doubt about how to pass command line arguments in electron when I'm using npm start to run electron.

In Node.js I am using: node server.js one two=three four command prompt for :

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

In Node.js is working. I need to know how can I make this work in electron.

Can someone please give a solution for this?

2

There are 2 best solutions below

3
On

The way of passing arguments will be same, the only thing you have to take care is path of electron. In package.json its written npm start will perform electron main.js. So you will have to execute this command explicitly and pass arguments with "proper path of electron" i.e ./node_modules/.bin/electron. Then the command will be

./node_modules/.bin/electron main.js argv1 argv2

and these arguments you can access by process.argv in main.js

and If wish you to access these parameters in your app then there are following things to do :

1.In your main.js define a variable like

global.sharedObject = {prop1: process.argv};

2.In your app just include remote and use this sharedObject

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

console.log(arguments);

3.Output will be ["argv1", "argv2"]

0
On

You have to use -- to separate the npm arguments from your app's arguments. This is a fairly common idiom in POSIX (Unix, Linux, etc.).

npm start -- one two=three four