This is (hopefully) the simplest way to load contents of all active BrowserWindow
s within electron when the source files are changed.
Disclaimer: this module is in its very early stages and the logic is still not mature enough.
npm install electron-reload
Just initialize this module with desired glob or file path to watch and let it refresh electron browser windows as targets are changed:
'use strict';
const {app, BrowserWindow} = require('electron');
require('electron-reload')(__dirname);
// Standard stuff
app.on('ready', () {
let mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadUrl(`file://${__dirname}/index.html`);
// the rest...
});
Not that the above code only refreshes WebContent
s of all BrowserWindow
s. So if you want to have a hard reset (starting a new electron process) you can just pass the path to the electron executable in the options
object. For example if you already have electron pre-built installed you could just do
require('electron-reload')(__dirname, {
electron: require('electron-prebuilt')
});
electron_reload(paths, options)
paths
: a file, directory or glob pattern to watchoptions
(optional):chokidar
options pluselectron
property pointing to electron executables. (default:{ignored: /node_modules|[\/\\]\./}
)
Simply put, I was tired and confused by all other available modules which are so complicated* for such an uncomplicated task!
* e.g. start a local HTTP server, publish change events through a WebSocket, etc.!
If you want to have least effort when developing electron packages, take a look at neutron!
- 1.0.0: Adapt to Electron 1.0 new API
- 0.3.0: Use new method of accessing
app
(e.g.require(electron).app
) - 0.2.0: Use new electrons (> v0.32.3)
browser-window-created
event