Electron

Electron框架快速入门与应用打包

前言

本文只是为了普及、尝鲜框架 electron ,并非是一份学习文档,目的是为了快速启动并使用。因此,很多细节、逻辑、原理都没有涉及,但是文章中有各种链接,可以帮助大家学习,可以自行点击学习。

注意:本文所有内容来均源于官网、Github。

链接

GitHub

官网

问题社区

简介

Electron是什么

Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 ChromiumNode.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。

学习前提

熟悉该文档之前,需要你有Node.js和web开发经验。 如果您需要了解这两个方面的开发知识,我们推荐您使用以下学习资源:

此外,如果您熟悉Chromium进程模型,您将更好了解 Electron 的工作原理。 You can get a brief overview of Chrome architecture with the Chrome comic, which was released alongside Chrome’s launch back in 2008. 尽管Chrome发布十多年了,【Chrome comic】漫画中介绍的核心原理仍然有助于理解Electron。

快速上手

官网Quik start

除去通过官网的方式,这边建议直接采用推荐的脚手架速度搭建一个electron应用。electron-quick-start

这次也从这里进行演示

1. Clone

注意:先确保本地环境有Node和npm

git clone https://github.com/electron/electron-quick-start.git

2. 认识整体、启动

这个时候你的文件夹下面应该是这样的结构:

.
├── LICENSE.md
├── README.md
├── index.html
├── main.js
├── package-lock.json
├── package.json
├── preload.js
└── renderer.js

index.html:

启动的时候展示的首页,通过 main.js 引入。

Main.js:

启动的时候吊起的 Node 服务。

Preload.js:

预加载脚本。

预加载 脚本连接到渲染器时派上用场。 预加载脚本在渲染器进程加载之前加载,并有权访问两个 渲染器全局 (例如 windowdocument) 和 Node.js 环境。

启动:

查看 package.json 并启动 electron

npm start

这个时候你就能看的到启动的框了。

3. 回顾

整体上来看,electron 通过本地调启 Node 服务,去加载 main.js ,然后在这个文件中去加载 index.html ,最终渲染展示。

打包

最快捷的打包方式是使用 Electron Forge

  1. 将 Electron Forge 添加到应用的开发依赖中,并使用其 import 命令设置 Forge 的脚手架
npm install --save-dev @electron-forge/cli
npx electron-forge import

✔ Checking your system
✔ Initializing Git Repository
✔ Writing modified package.json file
✔ Installing dependencies
✔ Writing modified package.json file
✔ Fixing .gitignore

We have ATTEMPTED to convert your app to be in a format that electron-forge understands.

Thanks for using "electron-forge"!!!
  1. 使用 Forge 的 make 命令来创建可分发的应用程序:
npm run make

> my-electron-app@1.0.0 make /my-electron-app
> electron-forge make

✔ Checking your system
✔ Resolving Forge Config
We need to package your application before we can make it
✔ Preparing to Package Application for arch: x64
✔ Preparing native dependencies
✔ Packaging Application
Making for the following targets: zip
✔ Making for target: zip - On platform: darwin - For arch: x64

Copy

Electron Forge creates the out folder where your package will be located:

// Example for macOS
out/
├── out/make/zip/darwin/x64/my-electron-app-darwin-x64-1.0.0.zip
├── ...
└── out/my-electron-app-darwin-x64/my-electron-app.app/Contents/MacOS/my-electron-app
### Electron框架介绍 Electron 是一个用于构建跨平台桌面应用程序的框架,允许开发者利用 JavaScript、HTML 和 CSS 创建原生应用[^1]。通过嵌入 Chromium 和 Node.jsElectron 能够让开发者仅需维护一套基于 JavaScript 的代码库即可创建能在 Windows、macOS 和 Linux 上运行的应用程序,无需具备本地开发经验[^2]。 ### 使用教程 #### 安装环境 为了开始使用 Electron 开发应用,首先需要安装 Node.js 及 npm (Node Package Manager),因为这些工具对于管理依赖项至关重要。接着可以通过 npm 来全局安装 `electron`: ```bash npm install electron --save-dev ``` 这会下载最新版本的 Electron 并将其保存到项目的 devDependencies 中。 #### 创建基础结构 一个典型的 Electron 应用通常包含以下几个文件夹和文件: - **main.js**: 主进程脚本,负责控制应用生命周期事件以及与渲染器之间的通信。 - **index.html**: 渲染页面的内容,在这里可以编写 HTML 结构来展示给用户的界面。 - **package.json**: 描述包元数据的地方,定义启动命令和其他配置选项。 下面是一个简单的 main.js 文件的例子: ```javascript const { app, BrowserWindow } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) win.loadFile('index.html') } app.whenReady().then(createWindow) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow() } }) ``` 此段代码初始化了一个新的浏览器窗口实例,并加载了 index.html 页面作为其内容源。 #### 打包发布 当完成开发后,可借助第三方工具如 [electron-builder](https://www.electron.build/) 或者 [electron-packager](https://github.com/electron-userland/electron-packager) 将项目打包成适用于不同操作系统的独立安装包。例如,使用 nsis-resources 进行 NSIS(Nullsoft Scriptable Install System)格式的 Windows 安装程序制作时,可以从特定资源仓库获取所需模板和支持文件[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值