vue3(vite)+electron打包踩坑记录(1)

vue3(vite)+electron打包踩坑记录 - 打包vue

第一步 编译vue

使用vite构建vue,package.json如下

{
  "name": "central-manager",
  "private": true,
  "version": "0.0.0",
  "type": "commonjs",
  "main": "main.js",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "build:electron": "electron-builder",
    "preview": "vite preview",
    "start": "nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue"
  },
  "build": {
    "appId": "com.example.app",
    "productName": "最终产品的名称",
    "win": {
      "target": [
        "nsis",
        "portable"
      ]
    },
    "files": [
      "dist/**/*",
      "src/**/*",
      "data/**/*",
      "preload/**/*",
      "main.js"
    ]
  },
  "dependencies": {
    "node-fetch": "^2.7.0",
    "pinia": "^2.1.7",
    "vue": "^3.3.4",
    "vue-router": "^4.3.0",
    "winston": "^2.4.7",
    "winston-daily-rotate-file": "^5.0.0"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.2.3",
    "electron": "^28.1.1",
    "electron-builder": "^24.12.0",
    "nodemon": "^3.0.2",
    "vite": "^4.4.5"
  }
}

执行 npm run build,编译vue项目。
遇到的问题:

Not allowed to load local resource:

我一开始认为,既然编译了vue,那么在electron中就可以使用loadFile来加载index.html

    createWindow() {


        // Create the browser window.
        this.mainWindow = new BrowserWindow({
         ...创建窗口的其他代码
            
        // 在开发模式下加载 Vite 开发服务器
        // 在生产模式下加载编译后的静态文件
        
        const startUrl = process.env.NODE_ENV === 'development'
            ? 'http://localhost:5173' // Vite dev server URL
            : `file://${path.join(__dirname, '../../../dist/index.html')}`;

        // 加载 index.html
        this.mainWindow.loadFile(startUrl)
        // mainWindow.loadFile('./src/index.html')
        // 打开开发工具
        this.mainWindow.webContents.openDevTools()
    }

结果就是:
Not allowed to load local resource
解决方法:使用 loadUrl()

ERR_FILE_NOT_FOUND错误

然后继续报错:
Failed to load resource
B站找视频,找到解决方案。
在vite.config.js加base配置:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  base: path.resolve(__dirname, './dist/')
})

然后控制台重新执行 npm run build
发现还是和上面一样的错误。借鉴别人视频,看到vue编译后,index.html中的资源引用应该为绝对路径。我检查了一下我的index.html,发现个怪异的问题。

路径前面的盘符不知道为什么缺失。我的项目在E盘,所以我直接手动加上 E:。
成功加载:
在这里插入图片描述

第二步 打包electron

我使用的是electron-builder,执行nmp run build:electron。顺利打包出exe。

在这里插入图片描述
运行exe,没有问题,但是图标没有显示,继续琢磨。后续会更新。

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

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

相关文章

Autosar 开篇

背景 AUTOSAR(Automotive Open System Architecture)是一个跨汽车行业的标准化软件架构,旨在促进汽车电子系统的开发和部署。下面是AUTOSAR发展的一些关键点: 起源和背景: AUTOSAR最初于2003年由汽车制造商宝马、戴姆…

x(x-1)的含义

一.二进制中x&(x-1)的含义 把x的二进制最后一个1变为0 找一下规律: 二.应用 我们可以利用这个特性,来数这个数字中有多少数字1 算法分析:放入一个计数器,每循环一次,就把这个数字的最后一个1变为0,计数…

【JavaEE】 spring boot的配置文件详解

spring boot的配置文件详解 文章目录 spring boot的配置文件详解常用配置spring boot的配置文件1. properties 文件2. YAML 文件3. 多环境配置4. 配置文件优先级5. 配置属性注入特殊说明 properties配置文件基本语法 例子peoperties文件的缺点 YML配置文件YML使用yml 配置不同数…

阿里云-系统盘-磁盘扩容

阿里云系统磁盘扩容 之前是测试环境磁盘用的默认的有 40G,后面升级到正式的 磁盘怕不够用打算升级到 100G, 系统镜像: Alibaba Cloud Linux 3.2104 LTS 64 位 磁盘 ESSD 40G 升级步骤: 扩容与创建快照 在阿里云后台首先去扩容…

【Docker】三、日志控制

三、日志控制 使用Docker部署服务器,要对Docker日志定时处理。否则,服务器运行一段时间后,磁盘占比报警。 出现磁盘占比报警,大概率是大文件的问题,可查看服务器中的大文件,排除问题。 (一&am…

apache 模式、优化、功能 与 nginx优化、应用

一、I/O模型——Input/Output模型 1.同步/异步 A程序需要调用B程序的某一个功能,A发送一个请求需要B完成一个任务 同步:B不会主动去通知A是否完成需要A自己去问 异步:B会主动通知A是否完成 2.阻塞/非阻塞 A发送一个请求需要B完成一个任务 …

Python文件和异常(二)

目录 三、异常 (一)处理 ZeroDivisionError 异常 (二)使用 try-except 代码块 (三)使用异常避免崩溃 (四)else 代码块 (五)处理 FileNotFoundError 异常…

单片机05__串口USART通信__按键控制向上位机传输字符串

串口USART通信 通用UART介绍 1.通信的概念 计算机与外界进行信息交换的过程称之为通信。 在通信的过程中,通信双方都需要遵守的规则称之为通信协议。 硬件协议:将数据以什么样的方式传输过去 软件协议:将数据以什么样的顺序传输过去 2.常用…

042 继承

代码实现 首先定义Person类(人类) /*** 人的基础特征** author Admin*/ public class Person {/*** 姓名*/String name;/*** 生日*/Date birthday;/*** 手机号码*/String tel;/*** 身份证号码*/String idCode;public Person() {}public Person(String …

BlackberryQ10 是可以安装 Android 4.3 应用的,Web UserAgent 版本信息

BlackberryQ10 是可以安装 Android 4.3 应用的 最近淘了个 Q10 手机,非常稀罕它,拿着手感一流。这么好的东西,就想给它装点东西,但目前所有的应用都已经抛弃这个安卓版本了。 一、开发环境介绍 BlackBerry Q10 的 安卓版本是 4.…

Spring Boot对接RocketMQ示例

部署服务 参考RocketMq入门介绍 示例 引入maven依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2</version></dependency>完整依赖如下&am…

栈和队列笔试题

答案&#xff1a;&#xff08;1&#xff09;seqn[tail]data; tail(tail1)%SEQLEN; &#xff08;2&#xff09;data seqn[head]; head (head1)%SEQLEN; &#xff08;3&#xff09;head tail; &#xff08;4&#xff09;(tail1)%SEQLEN head; (5) while(head!tail) head (h…

PHP WebSocket:技术解析与实用指南

本文旨在帮助初学者掌握在PHP中使用WebSocket的关键概念和技术。我们将深入讨论从建立连接、绑定到监听等各方面的操作&#xff0c;并提供易于理解和实践的指导。 一、socket协议的简介 WebSocket是什么&#xff0c;有什么优点 WebSocket是一个持久化的协议&#xff0c;这是…

基于相位的运动放大:如何检测和放大难以察觉的运动(01/2)

基于相位的运动放大&#xff1a;如何检测和放大难以察觉的运动 目录 一、说明二、结果的峰值三、金字塔背景3.1 可操纵金字塔3.2 亚倍频程复数可控金字塔 四、基本方针4.1 1D 问题陈述4.2 一维方法4.3 实际实施说明 五、放大倍率的限制5.1 空间支持的影响5.2 频带的影响 六、推…

【Oracle】玩转Oracle数据库(五):PL/SQL编程

前言 嗨&#xff0c;各位数据库达人&#xff01;准备好迎接数据库编程的新挑战了吗&#xff1f;今天我们要探索的是Oracle数据库中的神秘魔法——PL/SQL编程&#xff01;&#x1f52e;&#x1f4bb; 在这篇博文【Oracle】玩转Oracle数据库&#xff08;五&#xff09;&#xff1…

2.25基础会计学

资本公积是指由股东投入、但不能构成“股本”或“实收资本”的资金部分。 盈余公积是指公司按照规定从净利润中提取的各种积累资金。 所以区别在于盈余公积来自净利润。 借贷其实就是钱从哪来和到哪去的问题&#xff0c;来源是贷&#xff0c;流向是借。比如购入9w原材料&…

【监控】grafana图表使用快速上手

目录 1.前言 2.连接 3.图表 4.job和path 5.总结 1.前言 上一篇文章中&#xff0c;我们使用spring actuatorPrometheusgrafana实现了对一个spring boot应用的可视化监控。 【监控】Spring BootPrometheusGrafana实现可视化监控-CSDN博客 其中对grafana只是打开了一下&am…

YApi-pro docker安装在centos7上

之前安装失败了&#xff0c;只好在docker中装了。 准备环境 1.docker安装 centos7 docker 安装-CSDN博客 2.mongodb数据库docker安装 创建mongo容器目录 mkdir /data/mongo -p docker pull mongo:4.2.21 创建一个yapi网络插件 docker network create yapi …

音频声波的主观感受

一、响度 声压是“客观”的&#xff0c;响度是“主观”的。 响度又称音量。人耳感受到的声音强弱&#xff0c;它是人对声音大小的一个主观感觉量。响度的大小决定于声音接收处的波幅&#xff0c;就同一声源来说&#xff0c;波幅传播的愈远&#xff0c;响度愈小…

python jupyter notebook打开页面方便使用

如果没安装jupyter, 请安装&#xff1a; pip install jupyter notebook 运行jupyter notebook jupyter-notebook