1

前言

软件开发人经常说到:桌面应用 Web 化,Electron 却反其道而行之,这是为什么呢?

每一个技术的出现都是为了解决一定的问题。

既然要说 Electron,那么了解一下其背景也是很有必要的。

诞生

Electron 的出现最初是因为 Github 想要开发一个可编程的文本编辑器 Atom,在开发 Atom 的过程中,Electron 被作为其框架而诞生。

历史

  • 2013年4月 Atom Shell 项目启动。
  • 2014年5月 Atom Shell 被开源。
  • 2015年4月 Atom Shell 被重命名为 Electron。
  • 2016年5月 Electron 发布了 v1.0.0 版本。
  • 2016年5月 Electron 构建的应用程序可上架 Mac App Store。
  • 2016年8月 Windows Store 支持 Electron 构建的应用程序。

关于

可以看到 Electron 最初只是 Atom 编辑器的框架,它通过将 ChromiumNode.js 合并到同一个运行时环境中,使得开发者可以使用 HTML、CSS、JavaScript 这些前端技术栈来开发跨平台的桌面应用程序。

关键点是:使用前端技术栈,开发跨平台的桌面应用程序。

为什么用它?

Electron 也算是一种 Hybrid App,所以他开发的 Native 性能体验上肯定是不如原生应用的。那为什么要用 Electron?为什么又要把 Web 应用桌面化?

通过搜集的一些资料来看,较为重点的原因有以下几点:

  • 需要使用 Native API
  • 拥有离线可用的功能
  • 没有专门的 Native 工程师
  • 需要快速交付

综合考虑来看的话,我认为(并不官方)更加适合开发快速迭代的工具型应用

扩展

相似的技术还有 NW.js

尝鲜

环境与依赖

  • node
  • windows 7+
  • electron

node 安装

目前建议下载安装 12.16.1,这是一个 LTS 版本。

在安装的过程中,建议将 node 添加到环境变量。

创建一个 electron 的 demo

在一个自己喜欢的位置创建一个文件夹,比如:

# 新建文件夹
mkdir electron_test
# 之后进入文件夹
cd .\electron_test\
# 初始化为一个 npm 项目
npm init -y
# 安装 electron
npm install --save-dev electron
# 验证 electron
npx electron

编辑入口文件

在 根目录分别新建文件 main.jsindex.html

// index.html
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <h1>hello electron</h1>
</body>

</html>
// main.js
const { app, BrowserWindow } = require('electron')

app.on('ready', () => {
  let win = new BrowserWindow({
    width: 500,
    height: 300
  })
  win.loadFile('index.html')
})

修改 package.json

其他的内容省略掉啦。

{
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  }
}

启动

npm start

小结

通过一个简单的尝试,可以看出来 Electron 的技术栈是 Web 前端 友好的,如果你是一名 Web 前端工程师 那么我相信你也会无论如何先来这么一口的。

众所周知的,VSCode 是使用 Electron 开发的一个成功的案例。如果你还不确定 Electron 适合做些什么,或者想要知道还有哪些成功的案例,你可以查看更多


youbei
318 声望70 粉丝