You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Error: connect ETIMEDOUT 54.231.50.42:443
at Object.exports._errnoException (util.js:1016:11)
at exports._exceptionWithHostPort (util.js:1039:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1138:14)
安装 electron:
$ npm install electron -g
进程
Electron 的进程分为主进程和渲染进程。
主进程
在 electron 里面,运行 package.json 里面 main 脚本的进程成为主进程。主进程控制整个应用的生命周期,在主进程中可以创建 Web 形式的 GUI,而且整个 Node API 是内置其中。
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Hello World!</title><stylemedia="screen">
.version {
color: red;
}
</style></head><body><h1>Hello World!</h1>
We are using Node.js
<spanid="version-node" class="version"></span>
and Electron
<spanid="version-electron" class="version"></span><scripttype="text/javascript">console.log('process: ',process);varversionNode=process.version;varversionElectron=process.versions['electron'];document.getElementById('version-node').innerText=versionNodedocument.getElementById('version-electron').innerText=versionElectron</script></body></html>
在这个例子中,我们显示出了 electron 使用的 Node.js 版本和 electron 的版本。index.html 跟网页的 HTML 一摸一样,只是多了一些 electron 的全局对象。
运行
因为前面已经全局安装了 electron,所以我们可以使用 electron 命令来运行项目。在 electron-demo/ 目录里面运行下面的命令:
本文首先对 electron 做了简单的介绍,然后讲解了 electron 进程的概念,其进程包括主进程和渲染进程。然后创建了一个简单的 electron 应用,并通过实现一个简单的应用场景,对 electron 进程间的通信做了实践。总体来说,使用 electron 创建桌面客户端的开发体验跟写 Node.js 和网页差不多。但本文对内置模块比如 app、ipcMain、ipcRender、remote 等的介绍比较粗浅,涉及到一些内置模块的使用,还需要继续查询 electron 的官方文档,只有实践越多,才能越熟悉。
electron 5.0 开始,webPreferences.nodeIntegration 默认 false, 会导致index.html script 里的require报错:require is not defined.
main.js 里 记得加:
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true, // after electron 5.0, this value is default to false, which will cause "require is not defined" in html when use require
}
})
Activity
shiyongsway commentedon Jan 7, 2019
在主进程中接收渲染进程的消息 时, 也需要加上这句话,const {ipcMain} = require('electron') ,否则对于新手的话,程序跑不起来。
mariuswang007 commentedon Jul 2, 2019
electron 5.0 开始,webPreferences.nodeIntegration 默认 false, 会导致index.html script 里的require报错:require is not defined.
main.js 里 记得加:
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true, // after electron 5.0, this value is default to false, which will cause "require is not defined" in html when use require
}
})