我正在使用ElectronJS来构建桌面应用程序。但是,我想自动更新代码中的更改,并立即看到结果。例如,如果我在 localhost 上使用 express 创建一个WebServer,那么当我更新浏览器时,我会得到更改。在VSCode上的 Go Live 扩展中,此操作会在 *CRTL +保存 * 后自动发生电子是否存在类似的功能?我目前的选择是关闭整个电子应用程序,然后再次使用 npm start 启动它...谢谢.
ht4b089n1#
使用electron-hot-reload包获取hotreload
import { mainReloader, rendererReloader } from 'electron-hot-reload'; import { app } from 'electron'; import path from 'path'; const mainFile = path.join(app.getAppPath(), 'dist', 'main.js'); const rendererFile = path.join(app.getAppPath(), 'dist', 'renderer.js'); mainReloader(mainFile, undefined, (error, path) => { console.log("It is a main's process hook!"); }); rendererReloader(rendererFile, undefined, (error, path) => { console.log("It is a renderer's process hook!"); });
配置示例项目
https://github.com/valentineus/electron-hot-reload/tree/6feca4b65b78c674aea096906ecd7b46abebc36a/example/application/src
qij5mzcb2#
我自己找到的。正如@ShioT所提到的,这被称为 * 热重载/实时重载 *。
电子重载|npm包
https://www.npmjs.com/package/electron-reload
require('electron-reload')(__dirname);
require('electron-reload')(__dirname, { // note that this path can vary electron: path.join(__dirname, 'node_modules', '.bin', 'electron') });
acruukt93#
我发现的最简单的方法是使用electron-reloader,安装后,只需将以下代码粘贴在应用程序入口文件的顶部,就万事俱备了:
const { app } = require('electron') app.isPackaged || require('electron-reloader')(module)
56lgkhnf4#
此解决方案支持electron + webpack + react https://github.com/electron/forge/issues/2560的热重载
4条答案
按热度按时间ht4b089n1#
使用electron-hot-reload包获取hotreload
配置示例项目
https://github.com/valentineus/electron-hot-reload/tree/6feca4b65b78c674aea096906ecd7b46abebc36a/example/application/src
qij5mzcb2#
我自己找到的。正如@ShioT所提到的,这被称为 * 热重载/实时重载 *。
电子重载|npm包
https://www.npmjs.com/package/electron-reload
acruukt93#
我发现的最简单的方法是使用electron-reloader,安装后,只需将以下代码粘贴在应用程序入口文件的顶部,就万事俱备了:
56lgkhnf4#
此解决方案支持electron + webpack + react https://github.com/electron/forge/issues/2560的热重载