uniapp Electron打包生成桌面应用exe文件

1.uniapp Electron打包生成桌面应用exe文件

  随着跨平台开发的需求日益增长,UniApp 成为了开发者们的首选之一。通过 UniApp,你可以使用 Vue.js 的语法结构和组件系统来构建原生应用、Web 应用甚至是桌面应用。本文将详细介绍如何使用 UniApp 将你的项目打包成 Windows 桌面端的 exe 文件。

1.1. 前言

1.1.1. Electron

   Electron文档:https://www.electronjs.org/zh/docs/latest/tutorial/keyboard-shortcuts
   Electron 是一个基于 Node.js 和 Chromium 的桌面应用程序开发框架,它使开发人员能够使用 Web 技术(HTML、CSS 和 JavaScript)构建跨平台的桌面应用程序。它已经被众多知名公司使用,例如 GitHub、Slack、Microsoft 等等。本文将介绍如何使用 Electron 开发桌面应用程序。
   Electron 使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。
   在桌面程序中,使用C#语言可以创建winform和WPF程序,他们2个在Windows中都非常的优秀,还有就是使用QT开发桌面,可以跨平台开发,这三种都是比较“正规”的,而Electron是使用框架开发桌面程序的,还有其他的框架也可以开发桌面程序等。

1.1.2. 前提条件

(1)已安装 Node.js (建议使用 LTS 版本)
(2)已安装 Git (可选)
(3)已安装 HBuilderX 或其他支持 UniApp 的 IDE
(4)已安装 uni-app CLI (npm install -g @dcloudio/uni-app)
在这里插入图片描述

1.1.3. 安装node.js,

   安装node.js,在https://nodejs.org/en/download/ 网页上下载安装即可。
   按照网址安装配置即可https://www.cnblogs.com/liuqiyun/p/8133904.html
在这里插入图片描述
  npm版本如下

npm -v

在这里插入图片描述
  npm版本如下

npm -v

  node版本如下

node -v

在这里插入图片描述

1.1.4. 安装Electron相关插件

   (1)安装electron(主程序)

npm install electron -g

  [或者使用淘宝镜像

cnpm install electron -g

   (2)安装electron(打包)

npm install electron-packager -g

  或者使用淘宝镜像

cnpm install electron-packager -g

   (3)判断electron
  检查electron是否安装成功,

electron -v

  显示版本号则安装成功。
在这里插入图片描述

1.1.5. 解决npm下载过慢问题

安装淘宝的cnpm:
#在任意目录执行都可以
--global意思为安装到全局
npm install --global cnp

  如果不想安装cnpm又想使用淘宝的服务器来下载包

npm install jquery --registry=https://registry.npm.taobao.org

  但是每一次手动这样加参数很麻烦,所以我们可以把这个选项加入配置文件中:

npm config set registry https://registry.npm.taobao.org

1.1.6. 在安装electron时出现以下报错:

connect ETIMEDOUT 20.205.243.166:443
  解决办法:

ping GitHub.com

  如果能ping通,继续以下操作
  更改electron安装源。

npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/

  安装成功

1.1.4. 解决npm下载过慢问题

1.2. 安装步骤

1.2.1. 创建或准备 UniApp 项目

   如果你还没有 UniApp 项目,可以使用 HBuilderX 或者命令行创建一个新的项目;如果你已经有了一个 UniApp 项目,确保它已经包含了你需要的所有功能。
在这里插入图片描述

1.2.2. 安装 Electron 相关插件

   在项目根目录下打开终端,安装 uni-app 的 Electron 插件:

npm install --save-dev @dcloudio/uni-electron
cnpm install electron -g // 安装electron(主程序)
cnpm install electron-packager -g // 安装electron-packager(打包用)

在这里插入图片描述

1.2.3. 修改manifest.json

(1)运行的基础路径修改为:./ 不然打包出来会出现白屏,读取不到,因为打包出来的h5默认加载地址为/static/
(2)去掉启用https协议: 不然会出现网络无法加载,去掉https不影响你请求后端的https协议。
在这里插入图片描述

1.2.4. H5打包

   发行-网站-PC Web或手机H5(仅适用于uni-app)(H)
在这里插入图片描述
在这里插入图片描述
H5文件夹下新建package.json

npm init

在这里插入图片描述
在这里插入图片描述

1.4.6. H5文件夹下新建main.js

   如果你的网页首页的文件名不是 “index.html”,那么请在 main.js 中将其中的 ‘index.html’ 修改为你的网页首页名。
在这里插入图片描述
(1)方法一:加菜单

const {
   app, BrowserWindow} = require('electron')
const path = require('path')
const url = require('url')
 
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let win
 
function createWindow () {
   
  // Create the browser window.
  win = new BrowserWindow({
   width: 400, height: 700})
 
  // and load the index.html of the app.
  win.loadURL(url.format({
   
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true
  }))
 
  // Open the DevTools.
  // win.webContents.openDevTools()
 
  // Emitted when the window is closed.
  win.on('closed'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/927494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux -初识 与基础指令1

博客主页:【夜泉_ly】 本文专栏:【Linux】 欢迎点赞👍收藏⭐关注❤️ 文章目录 📚 前言🖥️ 初识🔐 登录 root用户👥 两种用户➕ 添加用户🧑‍💻 登录 普通用户⚙️ 常见…

【笔记总结】华为云:应用上云后的安全规划及设计

一、背景和问题 数字化时代,随着信息技术的飞速发展,企业和各类组织纷纷将自身的应用程序迁移至云端。云计算凭借其诸多优势,如成本效益、可扩展性、灵活性以及便捷的资源共享等,已然成为了现代业务运营的重要支撑。 今年&#xf…

【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版 (1)11111

文章目录 一、算法概念11111二、算法原理(一)树的构造(二)划分选择1、信息增益2、基尼指数3、卡方检验 (三)停止标准(四)剪枝处理1、预剪枝2、后剪枝 三、决策树的优缺点四、决策树分…

【SpringBoot问题】IDEA中用Service窗口展示所有服务及端口的办法

1、调出Service窗口 打开View→Tool Windows→Service,即可显示。 2、正常情况应该已经出现SpringBoot,如下图请继续第三步 3、配置Service窗口的项目启动类型。微服务一般是Springboot类型。所以这里需要选择一下。 点击最后一个号,点击Ru…

【Linux探索学习】第十八弹——进程等待:深入解析操作系统中的进程等待机制

Linux学习笔记:https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言: 在Linux操作系统中,进程是资源的管理和执行单元,每个进程都有其自己的生命周期。在进程的执行过程中,进程…

如何实现一套键盘鼠标控制两台计算机(罗技Options+ Flow功能快速实现演示)

需求背景 之前我写过一篇文章如何实现一套键盘鼠标控制两台计算机(Mouse Without Borders快速上手教程)_一套键鼠控制两台电脑-CSDN博客 当我们在局域网内有两台计算机,想使用一套键鼠操控时,可以安装Mouse Without Borders软件…

MATLAB中物理系统建模仿真介绍

Simscape 是 MATLAB 提供的一个强大的多域物理系统建模和仿真工具,它允许用户在 Simulink 环境中创建和模拟复杂的物理系统。Simscape 模型可以帮助用户细化需求、设计控制系统、测试嵌入式控制器,并使用数字孪生支持在役运行 1. Simscape概述 Simscap…

剖析kubernetes service的IP能否在宿主机中ping通

文章目录 前言一、serviceIP是怎么产生的二、宿主机中ping serviceIP地址1.ping示例2.为什么ping不通剖析2.1.封装及解封装过程2.2.ICMP报文以太网数据帧格式2.3.原因 三、ping不通svcIP是否跟iptables规则有关?四、为什么ipvs的的clusterIP类型的service能够ping通…

40分钟学 Go 语言高并发:内存管理与内存泄漏分析

内存管理与内存泄漏分析 一、内存管理基础知识 知识点重要性说明优化目标内存分配⭐⭐⭐⭐⭐栈内存和堆内存的分配机制降低内存分配开销逃逸分析⭐⭐⭐⭐⭐变量逃逸到堆的条件与影响减少堆内存分配泄漏排查⭐⭐⭐⭐内存泄漏的检测和定位防止内存泄漏内存优化⭐⭐⭐⭐内存使用…

云数仓 ByteHouse 的湖仓一体设计与实践

本次交流将聚焦 ByteHouse 湖仓一体主题,主要介绍: ByteHouse 简介 当代分析平台的挑战与 ByteHouse 一体化理念 ByteHouse 湖仓一体的核心能力 最佳实践 ByteHouse 简介 ByteHouse 是什么 ByteHouse 作为新一代云原生架构的数据仓库,属…

第一部分:基础知识 2. SQL基础 --[MySQL轻松入门教程]

第一部分:基础知识 2. SQL基础 --[MySQL轻松入门教程] SQL(Structured Query Language)是一种用于管理和处理关系型数据库的标准语言。它被广泛应用于各种数据库系统,如MySQL, PostgreSQL, Oracle, SQL Server等。下面是一些SQL的…

【QT】音乐播放器demo

1、使用设计师模式绘制ui界面 添加QPushButton并设置大小,ctrl鼠标拖动复制相同的组件。 添加icon //ps:icon下载网站 设置按钮无边框并设置鼠标悬停颜色: 修改QWidget样式表,添加: *{ border:none; } QPushBu…

基于python的汽车数据爬取数据分析与可视化

一、研究背景 基于提供的代码片段和讨论,我们可以得出一个与网络抓取、数据处理和数据可视化相关的研究背景,该背景涉及到汽车行业。以下是研究背景的陈述: "在迅速发展的汽车行业中,准确和及时的数据对各方利益相关者至关…

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​ 目录 一、引言 二、蒙版生成(mask-generation) 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排…

光伏电站设计排布前的准备

1、确定安装地点 地理位置:了解安装地点的经纬度,这对于确定太阳辐射角度和强度非常重要,海拔越高,阳光辐照就越高,比较适合安装光伏电站,根据地理位置还可以确定光伏板的安装倾角是多少,可以进…

【Linux】文件操作的艺术——从基础到精通

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言:一切皆文件 📚一、C语言的文件接口 📖1.文件打…

Neo4j 图数据库安装与操作指南(以mac为例)

目录 一、安装前提条件 1.1 Java环境 1.2 Homebrew(可选) 二、下载并安装Neo4j 2.1 从官方网站下载 2.1.1 访问Neo4j的官方网站 2.1.2 使用Homebrew安装 三、配置Neo4j 3.1 设置环境变量(可选) 3.2 打开配置文件(bash_profile) 3.2.1 打开终端…

基于SSM+vue的个性化商铺系统(源码+数据库+文档)

个性化商铺系统 基于SprinBootvue的个性化商铺系统 一、前言 二、系统设计 三、系统功能设计 App功能模块 后台功能模块 管理员功能模块 商家功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&…

【Electron学习笔记(三)】Electron的主进程和渲染进程

Electron的主进程和渲染进程 Electron的主进程和渲染进程前言正文1、主进程2、渲染进程3、Preload 脚本3.1 在项目目录下创建 preload.js 文件3.2 在 main.js 文件下创建路径变量并将 preload.js 定义为桥梁3.3 在 preload.js 文件下使用 electron 提供的contextBridge 模块3.4…