开发时同步电子应用程序中的代码更改

问题描述 投票:0回答:5

是否有任何工具可以在代码更改时实时重新加载电子应用程序,类似于网络浏览器同步?

每当我们更改电子应用程序的代码时,我都会终止现有的运行进程并重新启动 电子. 他们是否有任何工具可以在代码更改时自动重新加载电子应用程序。

javascript electron nodemon livereload
5个回答
52
投票

在这种情况下,您应该看看NodeJS 流程管理的开发工具。我个人最喜欢的是 nodemon 因为你可以使用配置文件或传递这样的东西:

nodemon --watch . --exec "electron ."

而且它会工作得很好。但同样,这是我的意见,从列表中选择适合您的。


11
投票

我发现的最好的(也是最简单的)工具是电子重载

// main.js
const electron = require('electron');
const { app, BrowserWindow } = electron;
const path = require('path');

// the first argument can be: a file, directory or glob pattern
require('electron-reload')(__dirname + '/app/index.html', {
  electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
});

let mainWindow;

app.on('ready', () => {
  mainWindow = new BrowserWindow({
    // ...
  });
  mainWindow.setMenu(null);

  mainWindow.loadURL(`file://${__dirname}/app/index.html`);
  process.env.NODE_ENV !== 'production' && mainWindow.openDevTools();
});

3
投票

如果直接使用命令“电子.”,

"nodemon": "nodemon --exec electron ."

然后它会给你一个错误

'electron' is not recognized as an internal or external command,
 operable program or batch file.

所以使用它间接

"start": "electron .",
"start:nodemon": "nodemon --watch main.js --exec npm start",

然后使用

重新启动您的应用程序
npm run start:nodemon

2
投票

回答有点晚了,但希望对大家有帮助。
有一个名为 Electromon 的

npm
模块。

npm i -g electromon [install]

用法是 electro .\main.js [将 main.js 的名称更改为您的文件,例如 app.js 或其他文件。 ]


0
投票

该解决方案支持热重载 电子 + webpack + 反应 https://github.com/electron/forge/issues/2560

© www.soinside.com 2019 - 2024. All rights reserved.