electron-reload
по умолчанию перезагружает WebContents
всех открытых BrowserWindows
только при изменении файла.Если вы хотите перезапустить Electron (то есть, если вы хотите, чтобы изменения в файле основного процесса Electron перезагрузили приложение), то вам нужен «полный сброс».
Для этого вам нужно установить путь к электронному приложению, например:
require('electron-reload')(__dirname, {
electron: path.join(__dirname, 'node_modules/.bin/electron.cmd')
});
В документации указано, что путь должен быть ./node_modules/.bin/electron
, но я смог заставить его работать только с помощью ./node_modules/.bin/electron.cmd
.Это, по-видимому, проблема с машинами Windows , и предположительно указывает на исполняемые файлы, работающие на MacOS.Это также может иметь место в системах Linux.
Ниже приведены все файлы, необходимые для примера:
. / Main.js
const { app, BrowserWindow } = require('electron')
const path = require('path')
const url = require('url')
require('electron-reload')(__dirname, {
electron: path.join(__dirname, 'node_modules/.bin/electron.cmd')
});
let mainWindow = null
function main() {
mainWindow = new BrowserWindow()
mainWindow.loadURL(
url.format({
pathname: path.join(__dirname, '/dist/index.html'),
protocol: 'file:',
slashes: true
})
)
mainWindow.on('closed', () => {
mainWindow = null
})
}
app.on('ready', main)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (mainWindow === null) {
main()
}
})
. / Index.html
<h1>Hello World!</h1>
. / Package.json
{
"name": "electron-hot-reload-boilerplate",
"version": "1.0.0",
"description": "An Electron Boilerplate demonstrating hot reloading",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"repository": "https://github.com/link/to/your/repo",
"keywords": [],
"author": "You",
"license": "CC-BY-SA-3.0",
"dependencies": {
"electron": "^3.0.9",
"electron-reload": "^1.3.0"
}
}
Установка с:
> npm install
Запуск с:
> npm start