通过网站

时间:2016-10-11 01:29:44

标签: javascript ecmascript-6 electron

我想我错过了构建Electron应用程序的方法,但我在main.js中使用无框架选项来隐藏我的应用程序的退出按钮,我想在代码中实现自己的我无法弄清楚如何触发应用程序的实际终止。我正在使用与Electron结合的angular2 CLI生成器项目。

根据我的Google搜索,我发现我需要使用const remote = require('electron').remote;,但这会给我一个index.js:4Uncaught TypeError: fs.readFileSync is not a function错误,这对我来说毫无意义。我相信它,因为我正在尝试在Angular App上执行仅节点模块。 我想我错过了什么。

有人知道发生了什么吗?

2 个答案:

答案 0 :(得分:0)

流程中,您可以通过调用app.quit()app require('electron')来关闭应用程序。

如果要从呈现进程关闭应用程序,可以让退出按钮通过执行类似主进程>

const {ipcRenderer} = require('electron');
ipcRenderer.send('exit-message', 'close');

这将广播到 main ,您可以在其中正确处理它,如此

ipcMain.on('exit-message', (event, arg) => {
  app.quit();
  // or handle the actual message if you need other functionality
})

答案 1 :(得分:0)

问题是角度CLI使用commonJS,我试图使用不能很好地运行的需求。为了解决这个问题,我在index.html

中添加了以下内容
  <script>
    const electron = require('electron');
  </script>

然后在我的typings.d.ts中我添加了declare var electron: any;,这样当我尝试在整个应用中访问电子时它不会抛出错误。