eletron+react+antd+node开发桌面小程序并打包(electron-packager+electron-builder)

news/2024/9/23 6:26:37/

首先罗列一下项目中用到的技术:

electron, react,antd, typescript, node,及打包命令:pkg,electron-packager,electron-builder及child_process实现多进程

需求:开发一个桌面应用,左侧展示视频(需要用到node服务进行rtsp转码),右侧一些获取视频流需要的表单数据。

因为从需求到完成小demo,大概花费了三四天时间,所以个别处代码写的有些潦草,后续有时间会继续优化。

第一步:electron之小试牛刀

首先得确保技术方案是可行的,因为之前没有用过electron,所以抛开融合其他架构的想法,先尝试下开发纯electron应用小程序,并实现可打包使用。

Electron 是一个能让你使用 JavaScript, HTML 和 CSS 来创建桌面应用程序的框架。 这些应用程序可以打包后在 macOS、Windows 和 Linux 上直接运行,或者通过 Mac App Store 或微软商店进行分发。

在使用 Electron 之前,您需要安装 Node.js。

1.electron官网提供了一个快速启动程序,可以下载下来尝试启动

# 克隆示例项目的仓库
$ git clone https://github.com/electron/electron-quick-start# 进入这个仓库
$ cd electron-quick-start# 安装依赖并运行
$ npm install && npm start

 也可以根据官网指引:

mkdir my-electron-app && cd my-electron-app

npm init -y

npm i --save-dev electron

创建主脚本:main.js

主脚本指定了运行主进程的 Electron 应用程序的入口(就我们而言,是 main.js 文件)。 通常,在主进程中运行的脚本控制应用程序的生命周期、显示图形用户界面及其元素、执行本机操作系统交互以及在网页中创建渲染进程。 Electron 应用程序只能有一个主进程。

.......此处参照官网指引创建demo即可,创建后打开项目可见:

2.开发环境搭建好了,后续功能可以相继添加。接下来尝试一下打包应用

用官网推荐的Electron Forge打包没有成功,于是转用electron-packager:

electron-packager ./ app --out ./OutApp --electron-version-12.0.2

第二步:electron结合react,ant,node

简单的electron可以运行后,我们尝试开始结合react,antd,ts一起使用

1.使用create-eact-app创建React项目:npx create-react-app electron-react-node --typescript


http://www.ppmy.cn/news/56296.html

相关文章

【热门框架】Maven依赖传递,可选依赖以及排除依赖指的是什么?有什么意义?

Maven依赖传递是指当一个项目依赖另一个项目时,Maven会自动下载并构建这些依赖项,同时还会将这些依赖项所依赖的其他项一并下载并构建。这个过程会一直递归下去,直到所有依赖的项都被下载并构建完成。这个过程就称为依赖传递。 依赖传递可以…

java中设计模式

单例模式 什么是单例模式? 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象…

使用SOCK_DGRAM类型的socket实现的ping程序

SOCK_DGRAM类型的socket常用于UDP通信,本文将尝试把这种socket用于ICMP协议,并完成一个简单的ping程序。使用ping去测试某个主机是否可用可能是一件很平常的事,尽管ping非常普通,但是编写一个实现ping功能的程序却并不是那么简单,因为ping使用的ICMP协议并不是一个应用层协…

leetcode-018-四数之和

题目及测试 package pid018; /* 18. 四数之和 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。 请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个…

【MySQL】数据的家——MySQL的数据目录

1. 数据库和文件系统的关系 InnoDB、MyISAM 等 存储引擎把表存储在磁盘上,操作系统使用文件系统来管理磁盘。所以,InnoDB、MyISAM 等 存储引擎都是把数据存储在文件系统上。 当读取数据时,存储引擎会从文件系统中把数据读出来返回给我们&am…

微服务开发LCM(Life Cycle Model)

02_Project Execution_项目执行1_Order Clarification_订单澄清099-Project approval--099项目批准110-Context diagram--110上下文图121-Process model--121过程模型130-Application description--130应用程序说明131-Architecture diagram--131架构图137-Technical interface…

华为OD机试 - 端口合并(Python)

题目描述 有M个端口组(1<=M<=10), 每个端口组是长度为N的整数数组(1<=N<=100), 如果端口组间存在2个及以上不同端口相同,则认为这2个端口组互相关联,可以合并。 输入描述 第一行输入端口组个数M,再输入M行,每行逗号分割,代表端口组。 备注:端口组内数字…

Python中的异常处理机制可以帮助程序员在程序运行过程中遇到错误时进行处理

Python中的异常处理机制可以帮助程序员在程序运行过程中遇到错误时进行处理&#xff0c;防止程序崩溃或出现不可预测的错误。 Python中的异常处理使用try-except语句。try语句块包含可能会出现异常的代码&#xff0c;而except语句块则定义了出现异常时应该执行的操作。下面是一…