Electron 是什么?
大家能够知道Electron,也都是通过JS开发一款桌面端应用的宣传认识的,那Electron 究竟是什么呢?官方如何定义的?
摘自官网 Introduction | Electron
Electron is a framework for building desktop applications using JavaScript, HTML, and CSS. By embedding Chromium and Node.js into its binary, Electron allows you to maintain one JavaScript codebase and create cross-platform apps that work on Windows, macOS, and Linux — no native development experience required.
官网的中文版翻译的有点怪怪的,自己总结了下:首先 Electron是一个框架,同比React、Vue都是一个框架,封装了一些东西,这个东西能够帮助你用HTML、JS、CSS也就是传统的前端开发技术去实现一个桌面应用。Electron的实现原理 底层还是利用Chromium 与Node,毕竟前端js还是需要跑在 V8中,而html这些可以在Chromium 中进行渲染。
补充下Chromium与Node,js的解释运行需要V8,而Node包括了V8,也就意味js可以完整执行,可参考通过Node开发的后端程序,如express。而桌面端应用还需要显示,而Chromium 可以简单理解为一个chrome,不过时chrome的简单版或者为开源版,这样用前端技术去实现一个桌面端应用的底层才算完整。
Electron能够干什么呢?官网也很清楚的描述了,他能够创建跨端应用,跨端包括了 window、macOs 、Linux,也就是基本上的桌面版的应用都支持,这一点还是比较重要的。浏览器发展的一大部分动力就是跨端的需求,所有页面都可以在浏览器中打开、访问,无需关注 使用者的电脑系统。Electron 支持这三大类,也避免了部分开发者担心程序 不能实现所有的端的使用。
特别注意的是,Electron的缺点就是打包得到的应用会很大,下面一个简单应用程序得到的安装文件,对比当前流行的Tauri,打包甚至能到600kb一下。但是Tauri后端使用Rust,如果为了快速开发,以及前端梭哈,Electron还是具有很大优势的。
快速开始
程序员的第一行代码或者仓库都是从Hello World开始的,让我们创建一个基础的Electron程序。
环境准备
+ 需要安装Node环境
+ 安装VSCode
仓库创建
初始化仓库(使用git bash终端)
mkdir -p Eletron/hello-world
cd Eletron/hello-world
npm init // 初始化一个npm 仓库,创建一个package.json
// 接下来填写package.json 信息,需要把入口文件 index.js => main.js
运行结果得到如下package.json
初始化Electron环境
先设定国内镜像。安装 npm install cnpm -g --registry=https://registry.npm.taobao.org
npm install --save-dev electron // 安装依赖electron
然后在仓库package.json的script内添加如下脚本,用于程序的启动执行
"start": "electron ."
创建页面
- 项目根目录下新建index.html 文件,用于显示
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
我们正在使用 Node.js <span id="node-version"></span>, Chromium
<span id="chrome-version"></span>, 和 Electron
<span id="electron-version"></span>.
</body>
</html>
2. 项目根目录下新建main.js 文件,用于程序运行
// 引入Electron 依赖,并解构得到相关框架提供的方法
const { app, BrowserWindow } = require("electron");
/**
* 创建一个窗口,初始化宽高为 800、600
*/
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
});
// 窗口渲染的引用文件为 根目录下的index.html
win.loadFile("index.html");
// 打开开发者工具
win.webContents.openDevTools()
};
// 监听到应用初始化准备好了之后,创建窗口
app.whenReady().then(() => {
createWindow();
});
// 监听到应用关闭后,退出程序
// app.on("window-all-closed", () => {
// if (process.platform !== "darwin") app.quit();
// });
3. 终端运行 npm start 或 npm run start 启动应用程序
运行截图
打包得到应用程序
Electron是一个框架,类比react,那打包electron-forge 就好比独立的webpack工具,electron-forge/cli就是webpack-cli,用于提供打包功能的脚手架,帮助你将代码 打包、分发,得到一个可使用的应用程序,另外还可以帮你发布应用,类似npm publish
1. 安装打包依赖 npm install --save-dev @electron-forge/cli
2. 执行electron-forge :npx electron-forge import
3.使用 Forge 的 make 命令来创建可分发的应用程序
npm run make
Electron-forge 会创建 out 文件夹,您的软件包将在那里找到;
本文暂时没有评论,来添加一个吧(●'◡'●)