modernator modernator - 5 months ago 124
Node.js Question

Electron.remote is undefined

I have trouble with using Electron. As you can see the title, when i load remote module, it saids it is undefined. This is the code of entry js:

const electron = require('electron');
const { app, BrowserWindow, Tray, remote, ipcMain } = electron;

function initApp() { ... }

app.on('ready', () => {
initApp();

console.log(electron); // object, but no remote inside
console.log(electron.remote); // undefined
console.log(remote); // undefined
});


and i tried to follow official doc here: http://electron.atom.io/docs/api/remote/

with

const { remote } = electron;
const { BrowserWindow } = remote;

let win = new BrowserWindow({width: 800, height: 600}); // error! BrowserWindow is not a constructor blabla

...
remote.getCurrentWindow().focus();


i don't know what am i missing. any advice will very appreciate.

Answer

remote is needed only to require other modules from inside a render process. In the main process you just get your modules directly from require('electron'). Which it looks like is done in the example just with remote unnecessarily added.

Render process:

const { remote } = require('electron');
const { BrowserWindow } = remote;

Main process:

const { BrowserWindow } = require('electron');