electron是Github發布的跨平台桌面應用開發工具,基于Web技術。支持Web技術開發桌面應用開發,其本身是基于C++開發的,GUI核心來自于Chrome,而JavaScript引擎使用v8,目前很多公司都在使用。歡迎有需要的朋友下載使用~

基本簡介
Electron是一個開源的跨平台開發框架,整合了Node.js、Chromium和V8,讓開發者可以使用HTML、CSS和JavaScript編寫跨平台桌面應用,使用Electron開發的應用不僅可以在Windows、Linux以及Mac平台下運行,還擁有自動更新、崩潰報告、調試分析等功能,目前微軟、Facebook、Stack和Docker等多家公司都在使用Electron。
主要功能
主進程
在Electron里,运行package.json里的main脚本的进程被称为 主進程 ,运行在主進程里的脚本能够通过创建Web页面来显示GUI。
渲染進程
因为Electron使用Chrominum来显示Web页面,所以Chrominum的多进程架构也同样被使用。每个页面在Electron里是运行在自己的进程里,这些进程被称为 渲染進程 。
在浏览器里,Web页面通常运行在一个沙盒环境里,它不能访问本地的资源。但在Electron里,在Web页面中通过使用Node.js API可以进行底层的操作系统交互。
主進程与渲染進程的不同
主進程通过构造 BrowserWindow 实例来创建Web页面。每个 BrowserWindow 实例在自己的渲染進程里运行Web页面。当一个 BrowserWindow 被销毁后,相应的渲染進程也同样被终止。
主進程管理所有的Web页面以及相关的渲染進程。每个渲染進程都是互相隔离的,并且只知道运行在该进程里的Web页面。
在Web页面里,调用本地GUI是不允许的,因为在Web页面里管理本地GUI资源是非常危险的而且非常容易导致资源泄露。如果你想在Web页面进行GUI操作,该Web页面的渲染進程必须通过和主進程通信来请求主進程处理这些操作。
在Electron里,主進程和渲染進程有很多通信的方法。比如 ipcRanderer 和 ipcMain 模块是用来发送消息的, remote 模块支持RPC风格的通信。
軟件特色
網絡技術
Electron使用Chromium和Node.js,因此您可以使用HTML,CSS和JavaScript構建您的應用程序。
開源
跨平台
與Mac,Windows和Linux兼容,Electron應用程序在三個平台上構建和運行。
自動更新
本地菜單和通知
崩潰報告
調試和分析
Windows安裝程序
軟件优缺点
一、優點
1、它依赖于每一个Web开发者都已经熟知的Web标准,让你可以用它编写桌面軟件。
2、它允许开发者专注于核心功能,它去负责軟件开发中复杂的部分
3、它为桌面应用提供了多种核心功能,例如自動更新、崩潰報告、安装器创建工具和一些具体的系统功能
二、缺點
沒有內置的MVC,無法完全支持Chrome平台。
electron入門教程
一.安裝Node.js
输入brew install node就可以完成Node.js和npm的安装。输入npm -v查看npm的版本号,以确认安装无误.
二.安裝electron
输入npm install -g electron-prebuilt进行安装。
但是在国内直接这样是安装不了的,我们通过启动Privoxy 和shadowsocks实现http代理:
npm config set proxy http://127.0.0.1:8118
npm config set http-proxy http://127.0.0.1:811812
输入npm install -g electron-packager安装打包工具.其安装目录为:/usr/local/lib/node_modules/electron-packager
备注:没有Privoxy和shadowsocks的可以参考此处 设置淘宝的cdn加速.
三.跑跑helloworld
参考官方的quick start ,clone下来这个项目,然后运行:npm install && npm start就ok了。
npm install 是安装依赖,npm start是打开app。
在electron-quick-start/node_modules/electron-prebuilt/dist目錄可以看到一個Electron.app文件.
之所以能使用npm start就是因为我们的electron-prebuilt这个东西,但这仅仅是个预构建,如果需要打包还需要下面的packager.
四.electron-packager的使用
electron-packager --platform= --arch= --version=1
通过electron-packager --help或者usage.txt 。
我把最重要的一部分附錄下:
Usage: electron-packager --platform= --arch=
Required options
sourcedir the base directory of the application source
platform all, or one or more of: darwin, linux, mas, win32 (comma-delimited if multiple)
arch all, ia32, x64
Example electron-packager ./ --platform=darwin --arch=x64
Optional options
appname the name of the app, if it needs to be different from the "productName" or "name" in the nearest package.json
1234567891011121314
所以在Mac上運行如下命令:
electron-packager ./ --platform=mas --arch=x64
由于未指定版本所以会自动下最新的electron-v0.37.6-mas-x64.zip,electron列表 .如果要指定版本号:
electron-packager ./ --platform=mas --arch=x64 --version=0.37.5
如果要打Windows平台的包:electron-packager ./ demo --platform=win32 --arch=x64 --version=0.37.6
總結:通過使用electron,可以最大限度的用前端的這一套開發pc上的東西,唯一的缺點就是打包出來的體積爲啥那麽大呢,一個helloworld竟然100多M。。。。。