electron vue 开发客户端程序

时间:2021-11-07 08:36:39

文档知识点

https://electronjs.org/docs/tutorial/about

(1)Electron通过将ChromiumNode.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。

即electron内置了浏览器和node环境。

Electron包括2个进程:main-process ,render-process。

main-process:控制应用的生命周期

 render-process:浏览器渲染。

这2个进行之间通过IPC进行通信。

 

(2) 通信过程待研究

https://electronjs.org/docs/faq#how-to-share-data-between-web-pages

 

开发小tips

(1)main 进程热更新

webpack配置:

function startMain () { return new Promise((resolve, reject) => { mainConfig.entry.main = [path.join(__dirname, '../src/main/index.dev.js')].concat(mainConfig.entry.main) const compiler = webpack(mainConfig) compiler.plugin('watch-run', (compilation, done) => { logStats('Main', chalk.white.bold('compiling...')) hotMiddleware.publish({ action: 'compiling' }) done() }) compiler.watch({}, (err, stats) => { if (err) { console.log(err) return } logStats('Main', stats) if (electronProcess && electronProcess.kill) { manualRestart = true process.kill(electronProcess.pid) electronProcess = null startElectron() setTimeout(() => { manualRestart = false }, 5000) } resolve() }) }) }

main进程的热更新使用的webpack的watch-run插件,所以main进程修改后会热更新。render进程热更新大家很熟悉了。

(2)main进程log记录

electron-log 插件可以打印main主进程信息。

https://github.com/megahertz/electron-log

需要说明的事:默认只有error信息可以打印到文件中。

 app.get('/situation/open/getJsonFiles', (req, res) => { // 默认情况下只打印error信息,所以使用log.error打印所需的信息即可
    log.error('Hello, log2') readJsonFiles(app).then(ele => { res.send(ele) }).catch(err => { res.send(err, '---ree') }) })

 

 

持续更新