How to run an electron app with arguments?
My app is electron with a BrowserWindow
loading a local page index.html.
I call npm run start
a script to run electron main.js
, the app opens and the html loaded.
Can I add an argument to the script that will load different html file into the BrowserWindow
?
In the main.js file the code is :
function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({
webPreferences:{
webSecurity:false
},
fullscreen : false });//, alwaysOnTop : true , kiosk : true })
mainWindow.setMenu(null);
// and load the index.html of the app.
let url = `file://${__dirname}/index.html`; \ index.html should be determined by argument passed at start.
mainWindow.loadURL(url,loadOptions);
// Open the DevTools.
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
node.js npm electron
add a comment |
My app is electron with a BrowserWindow
loading a local page index.html.
I call npm run start
a script to run electron main.js
, the app opens and the html loaded.
Can I add an argument to the script that will load different html file into the BrowserWindow
?
In the main.js file the code is :
function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({
webPreferences:{
webSecurity:false
},
fullscreen : false });//, alwaysOnTop : true , kiosk : true })
mainWindow.setMenu(null);
// and load the index.html of the app.
let url = `file://${__dirname}/index.html`; \ index.html should be determined by argument passed at start.
mainWindow.loadURL(url,loadOptions);
// Open the DevTools.
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
node.js npm electron
1
Isprocess.argv
not populated?
– Ben Fortune
Sep 6 '16 at 12:30
Yes but how do I pass an argument of my, like -html=index2.html
– Haddar Macdasi
Sep 6 '16 at 14:00
add a comment |
My app is electron with a BrowserWindow
loading a local page index.html.
I call npm run start
a script to run electron main.js
, the app opens and the html loaded.
Can I add an argument to the script that will load different html file into the BrowserWindow
?
In the main.js file the code is :
function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({
webPreferences:{
webSecurity:false
},
fullscreen : false });//, alwaysOnTop : true , kiosk : true })
mainWindow.setMenu(null);
// and load the index.html of the app.
let url = `file://${__dirname}/index.html`; \ index.html should be determined by argument passed at start.
mainWindow.loadURL(url,loadOptions);
// Open the DevTools.
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
node.js npm electron
My app is electron with a BrowserWindow
loading a local page index.html.
I call npm run start
a script to run electron main.js
, the app opens and the html loaded.
Can I add an argument to the script that will load different html file into the BrowserWindow
?
In the main.js file the code is :
function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({
webPreferences:{
webSecurity:false
},
fullscreen : false });//, alwaysOnTop : true , kiosk : true })
mainWindow.setMenu(null);
// and load the index.html of the app.
let url = `file://${__dirname}/index.html`; \ index.html should be determined by argument passed at start.
mainWindow.loadURL(url,loadOptions);
// Open the DevTools.
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
node.js npm electron
node.js npm electron
edited Nov 11 at 22:02
Mosh Feu
15.4k104881
15.4k104881
asked Sep 6 '16 at 12:26
Haddar Macdasi
1,85642749
1,85642749
1
Isprocess.argv
not populated?
– Ben Fortune
Sep 6 '16 at 12:30
Yes but how do I pass an argument of my, like -html=index2.html
– Haddar Macdasi
Sep 6 '16 at 14:00
add a comment |
1
Isprocess.argv
not populated?
– Ben Fortune
Sep 6 '16 at 12:30
Yes but how do I pass an argument of my, like -html=index2.html
– Haddar Macdasi
Sep 6 '16 at 14:00
1
1
Is
process.argv
not populated?– Ben Fortune
Sep 6 '16 at 12:30
Is
process.argv
not populated?– Ben Fortune
Sep 6 '16 at 12:30
Yes but how do I pass an argument of my, like -html=index2.html
– Haddar Macdasi
Sep 6 '16 at 14:00
Yes but how do I pass an argument of my, like -html=index2.html
– Haddar Macdasi
Sep 6 '16 at 14:00
add a comment |
1 Answer
1
active
oldest
votes
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
var remote = require('electron').remote,
arguments = remote.getGlobal('sharedObject').prop1;
console.log(arguments);
3.Output will be ["argv1", "argv2"]
Source : https://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247
1
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f39349017%2fhow-to-run-an-electron-app-with-arguments%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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
var remote = require('electron').remote,
arguments = remote.getGlobal('sharedObject').prop1;
console.log(arguments);
3.Output will be ["argv1", "argv2"]
Source : https://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247
1
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
add a comment |
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
var remote = require('electron').remote,
arguments = remote.getGlobal('sharedObject').prop1;
console.log(arguments);
3.Output will be ["argv1", "argv2"]
Source : https://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247
1
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
add a comment |
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
var remote = require('electron').remote,
arguments = remote.getGlobal('sharedObject').prop1;
console.log(arguments);
3.Output will be ["argv1", "argv2"]
Source : https://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247
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
var remote = require('electron').remote,
arguments = remote.getGlobal('sharedObject').prop1;
console.log(arguments);
3.Output will be ["argv1", "argv2"]
Source : https://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247
edited Sep 13 '17 at 18:31
answered Sep 13 '16 at 18:07
MaximeF
1,29232238
1,29232238
1
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
add a comment |
1
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
1
1
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
For some people who struggled with this, don't forget to set in your console: > set ELECTRON_ENABLE_LOGGING=true
– Paula Fleck
Oct 4 at 11:42
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f39349017%2fhow-to-run-an-electron-app-with-arguments%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Is
process.argv
not populated?– Ben Fortune
Sep 6 '16 at 12:30
Yes but how do I pass an argument of my, like -html=index2.html
– Haddar Macdasi
Sep 6 '16 at 14:00