ElectronJS:如何立即显示代码中的更改?

5jdjgkvh  于 9个月前  发布在  Electron
关注(0)|答案(4)|浏览(94)

我正在使用ElectronJS来构建桌面应用程序。
但是,我想自动更新代码中的更改,并立即看到结果。
例如,如果我在 localhost 上使用 express 创建一个WebServer,那么当我更新浏览器时,我会得到更改。
在VSCode上的 Go Live 扩展中,此操作会在 *CRTL +保存 * 后自动发生
电子是否存在类似的功能?
我目前的选择是关闭整个电子应用程序,然后再次使用 npm start 启动它...
谢谢.

ht4b089n

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

qij5mzcb

qij5mzcb2#

我自己找到的。正如@ShioT所提到的,这被称为 * 热重载/实时重载 *。

电子重载|npm包

https://www.npmjs.com/package/electron-reload

  • 前端 *
require('electron-reload')(__dirname);
  • 后端(硬复位)* const path = require('path')
require('electron-reload')(__dirname, {
   // note that this path can vary
  electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
});
acruukt9

acruukt93#

我发现的最简单的方法是使用electron-reloader,安装后,只需将以下代码粘贴在应用程序入口文件的顶部,就万事俱备了:

const { app } = require('electron')

app.isPackaged || require('electron-reloader')(module)
56lgkhnf

56lgkhnf4#

此解决方案支持electron + webpack + react https://github.com/electron/forge/issues/2560的热重载

相关问题