electron打包前端项目

news2024/11/18 15:40:55

1.npm run build
打包项目文件到disk文件夹

2.安装electron:npm install electron
打开后进到/dist里面 然后把这个项目的地址配置环境变量
在这里插入图片描述
配置环境变量:在系统变量的path中添加进去
在这里插入图片描述
配置成功后,electron -v看看版本。

3.创建主程序的入口文件main.js和相关配置package.json文件,将以下两个文件放入dist文件夹中
main.js

const {app, BrowserWindow} =require('electron');//引入electron
let win;
function createWindow(){
  win = new BrowserWindow({
    // frame: false, /*去掉顶部导航 去掉关闭按钮 最大化最小化按钮*/
    show: false//窗口最大化得加上这个 不然会闪一下
  });//创建一个窗口
  // win.setApplicationMenu(null)
  win.maximize()//窗口最大化
  win.setMenu(null)//去掉工具栏
  win.loadURL(`file://${__dirname}/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html,这里我直接在此写上我正式环境的地址‘prod.xxxx.com/xxx/xxxx’
  //win.webContents.openDevTools();  //开启调试工具
  win.on('close',() => {
    //回收BrowserWindow对象
    win = null;
  });
  win.on('resize',() => {
    win.reload();
  })
}
app.on('ready',createWindow);
app.on('window-all-closed',() => {
  app.quit();
});
app.on('activate',() => {
  if(win == null){
    createWindow();
  }
});

package.json

{
  "name": "demo",
  "productName": "项目名称", //这些名称都可以随意命名,不影响
  "author": "作者",
  "version": "1.0.4",//版本号
  "main": "main.js",//主文件入口
  "description": "项目描述",
  "scripts": {
    "pack": "electron-builder --dir",
    "dist": "electron-builder",
    "postinstall": "electron-builder install-app-deps"
  },
  "build": {
    "electronVersion": "1.8.4",
    "win": {
      "requestedExecutionLevel": "highestAvailable",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        }
      ]
    },
    "appId": "demo",//程序id
    "artifactName": "demo-${version}-${arch}.${ext}",
    "nsis": {
      "artifactName": "demo-${version}-${arch}.${ext}"
    },
    "extraResources": [
      {
        "from": "./static/xxxx/",//需要打包的静态资源
        "to": "app-server",//静态资源存放路径
        "filter": [
          "**/*"//打包静态资源文件夹内的所有文件  如果没有静态资源要打包进去,extraResources 这段代码去掉
        ]
      }
    ],
    "publish": [
      {
        "provider": "generic",
        "url": "http://xxxxx/download/"//自动更新的安装包地址,初步使用publish这段代码不需要
      }
    ]
  },
  "dependencies": {
    "core-js": "^2.4.1",
    "electron-packager": "^12.1.0",//不打包成exe程序可以去掉
    "electron-updater": "^2.22.1",//不打包成exe程序可以去掉
  }
}

4.配置好之后,dist文件里面是这样的
在这里插入图片描述

5.此时可以直接运行了(要在dist目录下运行:electron . 看清楚 这里有个点)

electron .

在这里插入图片描述

6.打包为exe程序,npm install electron-builder --save-dev
安装成功后 执行npm run dist进行打包,由于我们package.json中将打包命令electron-builder,定义为了dist,因此我们只需执行npm run dist即可打包
修改版本号:
在这里插入图片描述
打包时报下面这个错误 大概意思就是这个文件下载不下来 超时了,那么我们直接复制粘贴圈画的地址到浏览器下载下来 解压到C:\Users\Administrator\AppData\Local\electron-builder\Cache\nsis
在这里插入图片描述

打包成功在这里插入图片描述
在我们原本vue项目打包后的dist文件夹下,又出现一个dist,双击exe文件安装

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何修改“Ubuntu 主机名“Windows系统?

一、修改(node2) hostnamectl set-hostname node2 二、重启 sudo reboot now

Linux系统加固:限制root用户SSH远程登录

Linux系统加固:限制root用户SSH远程登录 一、前言二、禁止root用户远程登录系统1、执行备份2、先新建一个普通用户并设置高强度密码3、编辑/etc/ssh/sshd_config文件4、重启SSH服务5、补充:查看ssh协议版本 三、验证root用户是否可以远程登录系统 &#…

(k8s中)docker netty OOM问题记录

1、首先查看docker的内存占用情况: docker top 容器名 -u 查看内存cpu占用率(容器名来自kubectl describe pod xxx或者docker ps) 可以看出内存一直增长,作为IO代理这是不正常的。 2、修改启动参数和配置文件 需要注意的是为了…

WiFi模块推动远程医疗和健康监测的革命

随着科技的不断进步,WiFi模块在医疗领域的应用正推动着远程医疗和健康监测的革命。这一技术的引入不仅提高了医疗服务的效率,也为患者提供了更为便捷、智能的医疗体验。本文将深入探讨WiFi模块如何推动远程医疗和健康监测。 实时健康监测 WiFi模块在医疗…

灰度负载均衡和普通负载均衡有什么区别

灰度负载均衡(Gray Load Balancing)与普通负载均衡的主要区别在于它们服务发布和流量管理的方式。 灰度负载均衡 目的:主要用于灰度发布,即逐步向用户发布新版本的服务,以减少新版本可能带来的风险。工作方式&#x…

模拟算法题练习(一)

模拟算法介绍: 模拟算法通过模拟实际情况来解决问题,一般容易理解但是实现起来比较复杂,有很多需要注意的细节,或者是一些所谓很“麻模“的东西。 模拟题一般不涉及太难的算法,一般就是由较多的简单但是不好处理的部…

OD(12)之Mermaid思维导图(Mindmap)

OD(12)之Mermaid思维导图(Mindmap)使用详解 Author: Once Day Date: 2024年2月29日 漫漫长路才刚刚开始… 全系列文章可参考专栏: Mermaid使用指南_Once_day的博客-CSDN博客 参考文章: 关于 Mermaid | Mermaid 中文网 (nodejs.cn)Mermaid | Diagramming and charting tool…

JVM运行流程

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 JVM 1. 运行流程2. 运行时数据区2.1 堆&am…

鸿蒙Harmony应用开发—ArkTS声明式开发(焦点事件)

焦点事件指页面焦点在可获焦组件间移动时触发的事件,组件可使用焦点事件来处理相关逻辑。 说明: 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 目前仅支持通过外接键盘的tab键、方向键触发。不支…

BEANZ NFT 概览与数据分析

作者:stellafootprint.network 编译:cicifootprint.network 数据源:BEANZ NFT Collection Dashboard 2022 年 3 月 31 日,BEANZ NFT 的出现给 Azuki NFT 持有者带来了惊喜,成为 Azuki NFT 的亲密伙伴。这个 NFT …

生成式AI设计模式:综合指南

原文地址:Generative AI Design Patterns: A Comprehensive Guide 使用大型语言模型 (LLM) 的参考架构模式和心理模型 2024 年 2 月 14 日 对人工智能模式的需求 我们在构建新事物时,都会依赖一些经过验证的方法、途径和模式。对于软件工程师来说&am…

Linux设备模型(七) - Netlink

一,什么是netlink通信机制 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。Netlink 是一种特殊的 socket,它是 Linux 所特有的。 Netlink 是一种在内核与用户应用间进行双向数…

助力智能化农田作物除草,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统

在我们前面的系列博文中,关于田间作物场景下的作物、杂草检测已经有过相关的开发实践了,结合智能化的设备可以实现只能除草等操作,玉米作物场景下的杂草检测我们则少有涉及,这里本文的主要目的就是想要基于YOLOv7系列的模型来开发…

论文阅读:基于超像素的图卷积语义分割(图结构数据)

#Superpixel-based Graph Convolutional Network for Semantic Segmentation github链接 引言 GNN模型根据节点特征周围的边来训练节点特征,并获得最终的节点嵌入。通过利用具有不同滤波核的二维卷积对来自附近节点的信息进行整合,给定超像素方法生成的…

【RK3568】

RK3568 一、配置IP地址二、开发板连接网络,电脑连接无线,都正常上网三、GCC四、CMake1. CMakeLists.txt2. main.cpp3.build 五、传输文件 一、配置IP地址 vi /etc/init.d/S99z_ip //权限chmod ax S99z_ip /***********************************/ case &q…

瑞吉苍穹外卖如何拓展?已经经过不同公司多轮面试。项目中会问到哪些问题?以及问题如何解决?

别催了,别催了,先收藏吧。 作者大大正在加班加点完成。 文章会尽快发布,关注收藏,尽请期待。 想要加入并查阅作者的知识库可以联系作者 不要白嫖,通过后,附上关注和收藏截图。 已有众多小伙伴加入 目前…

Python中的os库

一.OS库简介 OS是Operating System的简写,即操作系统。 OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1:os.getcwd() 作用:返回当前工作目录,结果是…

WebCPM:首个开源的交互式网页搜索中文问答模型

论文题目:WEBCPM: Interactive Web Search for Chinese Long-form Question Answering   论文日期:2023/05/23(ACL 2023)   论文地址:https://arxiv.org/abs/2305.06849   GitHub地址:https://arxiv.org/abs/2305.06849 文章…

【前端素材】推荐优质后台管理系统cassie平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

nginx使用详解--动静分离

什么是动静分离? 为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请…