编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Electron 基础(electron入门教程)

wxchong 2024-08-27 23:02:03 开源技术 10 ℃ 0 评论

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 ."

创建页面

  1. 项目根目录下新建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 文件夹,您的软件包将在那里找到;


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表