开发桌面程序-Electron入门

简介: 【10月更文挑战第16天】Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架,嵌入了 Chromium 和 Node.js。本文介绍了如何搭建 Electron 开发环境,包括安装 Node.js、创建项目、配置 main.js 和打包应用。通过简单的步骤,你可以快速创建并运行一个基本的 Electron 应用程序。

Electron是什么

来自官网的介绍

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

总的来说就是 使用web前端技术开发桌面客户端程序;

开发环境搭建

  1. 安装NodeJS:
    下载地址如下:

    https://nodejs.org/en/download/

    根据系统下载指定安装程序并安装;安装完成后检查一下;
    使用命令如下:

    node -v
    npm -v

    在这里插入图片描述

  2. 使用脚手架创建应用程序

    • 新建文件夹first-app
    • 使用命令初始化工程;

      npm init

    -

  3. 填入指定信息(有默认值),生成一个package.json
    在这里插入图片描述

  4. 添加系统变量ELECTRON_MIRROR
    ELECTRON_MIRROR = http://npm.taobao.org/mirrors/electron/
    在这里插入图片描述
    如果网速够快,可以省略这一步

  5. 添加工程开发依赖electron

    npm install --save-dev electron

工程创建完成,开始写代码;

程序入口main.js

任何 Electron 应用程序的入口都是 main 文件。 这个文件控制了主进程,它运行在一个完整的Node.js环境中,负责控制应用的生命周期,显示原生界面,执行特殊操作并管理渲染器进程;

  • 创建一个html页面,后续用main.js来加载;
    ```html

<!DOCTYPE html>









你好!


我是

这是一个客户端程序





- 创建一个js文件,在html引入使用;

```javascript
// renderer.js
document.getElementById("name").innerText = "your full name";
  • 创建一个文件main.js用做程序入口,加载html文件;

将页面加载进应用窗口中。 需要 两个Electron模块:

app 模块,它控制应用程序的事件生命周期。
BrowserWindow 模块,它创建和管理应用程序 窗口。

因为主进程运行着 Node.js,可以在 main.js 文件头部将它们导入作为 CommonJS 模块:然后,添加一个createWindow()方法来将index.html加载进一个新的BrowserWindow实例。在 Electron 中,只有在 app 模块的 ready 事件被激发后才能创建浏览器窗口。 您可以通过使用 app.whenReady() API来监听此事件。 在whenReady()成功后调用createWindow()。

// main.js

// Modules to control application life and create native browser window
const {
    app, BrowserWindow } = require('electron')

const createWindow = () => {
   
  // Create the browser window.
  const mainWindow = new BrowserWindow({
   
    width: 800,
    height: 600,
  })

  // 加载 index.html
  mainWindow.loadFile('index.html')

}

// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {
   
  createWindow()

  app.on('activate', () => {
   
    // 在 macOS 系统内, 如果没有已开启的应用窗口
    // 点击托盘图标时通常会重新创建一个新窗口
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态, 
// 直到用户使用 Cmd + Q 明确退出
app.on('window-all-closed', () => {
   
  if (process.platform !== 'darwin') app.quit()
})
  • 在package.json文件中添加启动脚本;
    ```json
    {
    "name": "first-app",
    "version": "1.0.0",
    "description": "hello world",
    "main": "main.js",
    "scripts": {
    "start":"electron .",
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "L",
    "license": "MIT",
    "devDependencies": {
    "electron": "^28.1.0"
    }
    }

- 启动应用程序,命令如下:
 > npm start

![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/90501b19803ce0d2d48ee3b239d17074.png)

如果有错误提示如下,大概率是安装了QQ输入法,只需要切换输入法就行;
> libpng warning: iCCP: cHRM chunk does not match sRGB


#### 打包应用

Electron 的核心模块中没有捆绑任何用于打包或分发文件的工具。 开发完成一个 Electron 应用,需要使用额外的工具来打包应用程序 ;而Electron Forge 是一个处理 Electron 应用程序打包与分发的一体化工具。 


使用如下命令完成elecron-forge的安装和导入:

> npm install --save-dev @electron-forge/cli
> npx electron-forge import

如果安装失败,大概率是npm版本问题,升级版本即可;

![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1281f9c5971e3ea39a215129c3bf84be.png)
安装完成后,新增了有个文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bc4f2f19d0e969330487df39fc6b7e4f.png)

pageage.json中新增了make和package脚本;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5d4492ed2b33715687fb278e1d53ed9c.png)

使用以下命令打包成可执行程序;

npm run make
```
在这里插入图片描述

打包完成后,会生成一个out文件夹;软件包就在里面
在这里插入图片描述

相关文章
|
6月前
|
资源调度 JavaScript 前端开发
IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践
这次借着论证 Web IM端 SDK 是否可以在 Electron 生成的桌面端正常稳定使用,我决定把官方新推出的 webim-vue3-demo,打包到桌面端,并记录了这次验证的过程以及所遇到的问题和解决方法。
106 2
|
4月前
|
JavaScript 开发工具
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
|
5月前
|
前端开发
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
|
7月前
|
移动开发 开发框架 JavaScript
Vue3 Vite electron 开发桌面程序
Vue3 Vite electron 开发桌面程序
349 0
|
7月前
|
开发框架 前端开发 Linux
前端知识笔记(二十四)———快速创建桌面端(electron-egg)
前端知识笔记(二十四)———快速创建桌面端(electron-egg)
349 0
|
7月前
|
前端开发 数据可视化 iOS开发
基于electron快速将任意网站打包成跨平台的桌面端软件
基于electron快速将任意网站打包成跨平台的桌面端软件
241 1
|
前端开发 算法 JavaScript
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(下)
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(下)
191 0
|
存储 Web App开发 JavaScript
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(上)
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(上)
248 0
|
Web App开发 资源调度 前端开发
基于NeteaseCloudMusicApi和electron-vue开发网易云音乐--electron-vue初始化
基于NeteaseCloudMusicApi和electron-vue开发网易云音乐--electron-vue初始化
146 0
|
前端开发 JavaScript API
React使用Electron开发桌面端
React是一个流行的JavaScript库,用于构建Web应用程序。结合Electron框架,可以轻松地将React应用程序打包为桌面应用程序。以下是使用React和Electron开发桌面应用程序的步骤:
React使用Electron开发桌面端