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。。。。。