是否有任何工具可以在代码更改时实时重新加载电子应用程序,类似于网络浏览器同步?
每当我们更改电子应用程序的代码时,我都会终止现有的运行进程并重新启动 电子. 他们是否有任何工具可以在代码更改时自动重新加载电子应用程序。
在这种情况下,您应该看看NodeJS 流程管理的开发工具。我个人最喜欢的是 nodemon 因为你可以使用配置文件或传递这样的东西:
nodemon --watch . --exec "electron ."
而且它会工作得很好。但同样,这是我的意见,从列表中选择适合您的。
我发现的最好的(也是最简单的)工具是电子重载:
// 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();
});
如果直接使用命令“电子.”,
"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
回答有点晚了,但希望对大家有帮助。
有一个名为 Electromon 的
npm
模块。
npm i -g electromon [install]
用法是 electro .\main.js [将 main.js 的名称更改为您的文件,例如 app.js 或其他文件。 ]
该解决方案支持热重载 电子 + webpack + 反应 https://github.com/electron/forge/issues/2560