首页 > 其他分享 >Electron-vue项目打包遇坑

Electron-vue项目打包遇坑

时间:2023-09-15 13:13:25浏览次数:37  
标签:vue ico 遇坑 electron Electron true 打包

项目背景

  • 一个Electron+vue2的桌面应用项目,进行打包
  • 使用了vue-cli-plugin-electron-builder将Electron和vue结合

直接使用electron-builder打包

  • 问题一:打包后,background.js中会出现模块引入报错。Electron是commonJs规范,但使用了ESM规范
    import {
      createProtocol
    } from 'vue-cli-plugin-electron-builder/lib'
  • 问题二:大量文章都将build option写入package.json,但是实际上需要写入vue.config.js
  • 问题三:当为了解决第一个问题,删去createProtocol的引入,会导致exe直接找不到index.html。如果规范模块化,使用type:'es',会导致node的内置模块无法使用。

使用框架内置打包electron:build

由于github网络等问题,需要手动下载打包相关的资源 :

  1. electron-v8.2.0-win32-x64.zip

  2. winCodeSign-2.6.0.7z

  3. nsis-3.0.4.2.7z

  4. nsis-resources-3.4.1.7z

相关安装步骤可看以下文章:https://blog.csdn.net/qq_32682301/article/details/105234408

打包build option配置

  pluginOptions: {
    electronBuilder: {
      nodeIntegration: true,
      builderOptions: {
        productName: "Barrage",
        appId: "electron.app",
        asar: false, //是否将源代码打包为asar.exe
        nsis: {
          "oneClick": false, // 是否一键安装
          "allowElevation": true, // 允许请求提升。若为false,则用户必须使用提升的权限重新启动安装程序。
          "allowToChangeInstallationDirectory": true, //是否允许修改安装目录
          "installerIcon": "./src/assets/my2.ico",// 安装时图标
          "uninstallerIcon": "./src/assets/my2.ico",//卸载时图标
          "installerHeaderIcon": "./src/assets/my2.ico", // 安装时头部图标
          "createDesktopShortcut": true, // 是否创建桌面图标
          "createStartMenuShortcut": true,// 是否创建开始菜单图标
          "shortcutName": "all-electron", // 快捷方式名称
          "runAfterFinish": false,//是否安装完成后运行
        },
        win: {
          target: 'nsis',
          icon: './src/assets/my2.ico'
        },
        electronDownload: {
          mirror: "https://npm.taobao.org/mirrors/electron/"
        },
        extends: null
      }
    }
  },
  • 如果添加了filesdirectories项,会导致出错

打包路径有中文

打包路径如果存在中文,会出现乱码情况

可参考以下文章进行配置https://blog.csdn.net/kyq0417/article/details/111266776

标签:vue,ico,遇坑,electron,Electron,true,打包
From: https://www.cnblogs.com/karle/p/17704801.html

相关文章

  • 问题记录:vue项目中的babel转化器是否可以转换npm install下来的依赖库,使该依赖库也可
    vue项目中的babel转化器是否可以转换npminstall下来的依赖库,使该依赖库也可以兼容es6语法?是的,Babel转换器可以用于转换通过npminstall安装的依赖库,以使其兼容ES6语法。Babel是一个广泛使用的JavaScript编译器,可以将较新版本的JavaScript代码转换为向后兼容的版本,以便在不支持这......
  • 【Vue】大悟!模板语法-插值语法&指令语法
    Vue系列持续更新模板语法Vue模板语法包括两大类插值语法插值语法也就是两个大括号,也叫Mustache功能:用于解析标签体内容,可以进行运算、三元表达式等,将最终解析出来的内容插入到标签中写法:{{xxx}},xxx是js表达式,可以直接读取到data中的所有区域插值表达式中只能放置单个表达式,不......
  • uniapp VUE-H5页面微信公众号内使用微信JSAPI支付
    注意看本文主要讲解uniapp打包成h5页面并部署在公众号时使用JSAPI的微信支付问题前期准备工作.首先要有一个开通商户注册的公众号,我们需要他的appid;.其次要开通商户公众号的公众号支付的功能并添加域名,开通完成后就可以基本开始我们的开发了既然是jsapi开发自然是要引入的......
  • electron 如何在linux底下调试
    1、确保已经安装了Node.js和npm。2、在你的Electron项目目录下,执行以下命令安装 electron-debug:npminstall--save-develectron-debug3、修改主进程(mainprocess)的启动代码(通常在 main.js 文件中),添加以下内容:const{app,BrowserWindow}=require('electron')......
  • Vue的快速上手
    01-Vue介绍0前端的发展史1.HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端->在浏览器中查看2.Ajax的出现->后台发送异步请求,Render+Ajax混合3.单用Ajax(加载数据,DOM......
  • Vue-选择器v-model绑定对象
    Vue-选择器v-model绑定对象<template><el-selectv-model="value"placeholder="请选择"><el-optionv-for="iteminoptions":key="item.value":label="item.label":value=&quo......
  • Vue--this的指代问题及用法
    Vue--this的指代问题及用法this在普通函数(function(){})里,指代调用该函数(方法)的对象this在箭头函数(()=>{})里,指代定义该箭头函数的外层对象在axios调用当前vue实例的data:axios回调函数(.then())是在执行栈中被执行,其中this指向window,若要在axios中取后端数据并......
  • vue2.0 表单验证明明有值却提示错误
    明明有值却总是提示为空我的解决方法时将number转为字符串验证方法如图:(验证只可以输入数字)赋值时转为字符串: ......
  • 一个基于Vue模型的表单生成器
    哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!VuetifyFormBase是一个基于模型的表单生成器,目的是提供一个工具,以便以较少的努力从任何模型数据生成可编辑的表单,即使模型是一个深度嵌套的对象。VuetifyFormBase作为Vue组件工作,可以很容易地集成到任何VU......
  • Vue介绍
    前端的发展史1HTML(5)、CSS(3)、JavaScript(ES5、ES6、ES11):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端->在浏览器中查看2Ajax的出现->后台发送异步请求,Render+Ajax混合3单用Ajax(加载数据,DOM渲染页面......