简化电子IPC的工具

时间:2017-01-11 15:26:24

标签: electron nwjs

他们是否有任何工具可以简化IPC并在单个网页和node.js进程之间进行数据编组?

我看过:http://tangiblejs.com/posts/nw-js-and-electron-compared-2016-edition

概述了nw.js与电子之间的差异。两者看起来几乎相同,但我喜欢在不需要时最小化复杂性,所以我倾向于nw.js以避免IPC的问题。

但这可能是一个错误,因为我看到这个组中有超过10倍的关于电子的评论而不是NW.JS

(我的IDE将是Visual Studio Code,现在有一个NW.JS调试的扩展,但没有Electron的扩展。)

1 个答案:

答案 0 :(得分:2)

由于这个原因我们开始使用NWJS,也因为它支持chrome.serial。最近我将项目转换为电子,原因如下:

你是对的,NWJS没有主要/渲染过程的复杂性,但我发现很少有理由要处理IPC。

许多API仅在过程中可用,但可以通过remote API访问。例如,要使用呈现流程访问 process.argv,我会使用:

{process} = require('electron').remote
process.argv ...

在我的index.js中,我不得不做一些IPC的事情,但电子有图书馆来简化这个:

// ensure we only have a single instance, but pass args to renderer to open any files passed by explorer
const shouldQuit = app.makeSingleInstance((argv, workingDir) => {
  win.webContents.send('open-instance', argv);
})

然后在我的渲染器代码中,我有以下内容:

ipcRenderer.on('open-instance', (event, arg) => {
  this.restoreAndFocus();
  // TODO - handle another instance opening a file from explorer
});