electron(桌面开发工具)是一款非常强大的跨平台桌面开发工具,支持Web技术开发桌面应用开发,应用非常广泛。electron整合了Node.js、Chromium和V8,可以跨平台编写桌面应用,需要的朋友可以下载使用。
Electron是一个开源的跨平台开发框架,整合了Node.js、Chromium和V8,让开发者可以使用HTML、CSS和JavaScript编写跨平台桌面应用,使用Electron开发的应用不仅可以在Windows、Linux以及Mac平台下运行,还拥有自动更新、崩溃报告、调试分析等功能,目前微软、Facebook、Stack和Docker等多家公司都在使用Electron。
一、优点
1、它依赖于每一个Web开发者都已经熟知的Web标准,让你可以用它编写桌面软件。
2、它允许开发者专注于核心功能,它去负责软件开发中复杂的部分
3、它为桌面应用提供了多种核心功能,例如自动更新、崩溃报告、安装器创建工具和一些具体的系统功能
二、缺点
没有内置的MVC,无法完全支持Chrome平台。
编写第一个Electron应用
通常,一个Electron应用的结构类似下面:
your-app/
├── package.json
├── main.js
└── index.html
package.json 的格式与Node的模块格式是一致的,其中 main 字段指定的脚本就是你应用的启动脚本,该脚本将运行在主进程中。你的 package.json 也许看上去像下面这个例子:
{
"name": "your-app",
"version" : "0.1.0",
"main" : "main.js"
}
注意 如果在 package.json 中的 main 字段没有指定,那么Electron将尝试装载一个名为 index.js 的脚本。
main.js 应当创建窗口并且处理系统事件,一个典型的例子如下:
const electron = require('electron');
// 控制应用生命周期的模块
const {app} = electron;
// 创建本地浏览器窗口的模块
const {BrowserWindow} = electron;
// 指向窗口对象的一个全局引用,如果没有这个引用,那么当该javascript对象被垃圾回收的
// 时候该窗口将会自动关闭
let win;
function createWindow() {
// 创建一个新的浏览器窗口
win = new BrowserWindow({width: 800, height: 600});
// 并且装载应用的index.html页面
win.loadURL(`file://${__dirname}/index.html`);
// 打开开发工具页面
win.webContents.openDevTools();
// 当窗口关闭时调用的方法
win.on('closed', () => {
// 解除窗口对象的引用,通常而言如果应用支持多个窗口的话,你会在一个数组里
// 存放窗口对象,在窗口关闭的时候应当删除相应的元素。
win = null;
});
}
// 当Electron完成初始化并且已经创建了浏览器窗口,则该方法将会被调用。
// 有些API只能在该事件发生后才能被使用。
app.on('ready', createWindow);
// 当所有的窗口被关闭后退出应用
app.on('window-all-closed', () => {
// 对于OS X系统,应用和相应的菜单栏会一直激活直到用户通过Cmd + Q显式退出
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
// 对于OS X系统,当dock图标被点击后会重新创建一个app窗口,并且不会有其他
// 窗口打开
if (win === null) {
createWindow();
}
});
// 在这个文件后面你可以直接包含你应用特定的由主进程运行的代码。
// 也可以把这些代码放在另一个文件中然后在这里导入。
最后 index.html 则是你想要展示在窗口中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</body>
</html>
运行你的应用
一旦你建立了你的 main.js , index.html , 以及 package.json 文件,你也许会想要尝试在本地运行应用来测试它,确保应用是按照你预期的方式工作。
electron-prebuilt
electron-prebuilt 是一个 npm 的模块,它包含了一个预编译的Electron版本。
如果你已经通过 npm 将该模块全局安装了,那么你只需要在你应用的源代码目录西下运行下面的命令:
electron .
如果你只是在本地安装了该模块,那么运行:
./node_modules/.bin/electron .
手动下载Electron二进制包
如果手动下载了Electron二进制包,你可以通过执行其中包含的二进制文件来直接执行你的应用。
Windows
$ .\electron\electron.exe your-app\
Linux
$ ./electron/electron your-app/
OS X
$ ./Electron.app/Contents/MacOS/Electron your-app/
这里的 Electron.app 是Electron发布包的一部分,你可以在 这里 下载。
运行发布
在完成应用开发之后,你可以按照 应用发布 指导创建一个发布,然后执行打包的应用。
尝试例子
通过使用 atom/electron-quick-start 来克隆并且运行教程的代码。
注意 运行该例子需要在你的系统中安装 Git 以及 Node.js (它也包含了 npm )。
# 克隆仓库
$ git clone https://github.com/electron/electron-quick-start
# 进入克隆的仓库
$ cd electron-quick-start
# 安装依赖然后运行应用
$ npm install && npm start
140.5M / 09-05
立即下载76.4M / 03-25
立即下载55M / 06-05
立即下载237.9M / 04-13
立即下载900.9M / 03-02
立即下载96.2M / 07-06
立即下载311.2M / 07-06
立即下载335M / 07-06
立即下载200M / 07-06
立即下载413.8M / 07-06
立即下载484.7M / 09-27
立即下载165.4M / 09-05
立即下载353.9M / 06-05
立即下载131.8M / 04-13
立即下载195.6M / 03-03
立即下载45.6M / 09-08
立即下载665.2M / 07-06
立即下载2.84G / 07-06
立即下载93M / 07-06
立即下载338.3M / 07-06
立即下载1.38G / 07-26
立即下载488.3M / 07-16
立即下载109.8M / 06-03
立即下载142M / 01-08
立即下载1.2M / 11-23
立即下载548.8M / 04-13
立即下载1.6M / 04-13
立即下载1.48G / 03-18
立即下载646.6M / 03-03
立即下载133.7M / 03-03
立即下载110.5M / 09-05
立即下载33.4M / 09-05
立即下载325.8M / 08-12
立即下载60M / 04-29
立即下载254M / 04-25
立即下载659M / 04-23
立即下载1M / 12-26
立即下载253.4M / 12-08
立即下载253M / 12-08
立即下载1.19G / 11-16
立即下载369M / 09-22
立即下载181.5M / 09-22
立即下载201.2M / 09-05
立即下载488.3M / 07-16
立即下载248.9M / 12-08
立即下载248.9M / 12-08
立即下载100.6M / 03-06
立即下载148.9M / 03-06
立即下载1.12G / 07-06
立即下载1.25G / 07-06
立即下载1.76G / 09-22
立即下载1.92G / 04-17
立即下载116.2M / 04-10
立即下载201.5M / 04-13
立即下载7.31G / 07-01
立即下载94.3M / 07-06
立即下载2.48G / 07-06
立即下载7.63G / 07-06
立即下载1M / 07-06
立即下载778.1M / 07-06
立即下载561.8M / 07-11
立即下载72M / 07-06
立即下载548.7M / 07-06
立即下载1.00G / 07-06
立即下载9.13G / 07-06
立即下载126.2M / 07-06
立即下载72M / 07-06
立即下载105.1M / 07-06
立即下载132M / 07-06
立即下载132M / 07-06
立即下载