首页 > 其他分享 >在vue2.0 项目中集成 Electron 实现桌面端应用

在vue2.0 项目中集成 Electron 实现桌面端应用

时间:2023-11-23 18:00:30浏览次数:46  
标签:桌面 builder electron nsis Electron 下载 https com vue2.0

需求:在桌面端有个应用能直接打开项目,不用在浏览器中浏览。

方案:vue2.0 + Electron

关于vue的项目搭建和electron的相关介绍可以去官网了解,这里是直接在已经开发好的vue2.0的项目中直接加入electron。

electron介绍:

  参考1: https://electronjs.p2hp.com/

  参考2:https://www.electronjs.org/zh/docs/latest/api/app

已有vue2.0项目: admin-demo

一、添加electron相关依赖

1、添加打包工具-注意 要在当前项目目录中进行

  vue add electron-builder

 

注意:因为electron的一些资源在github上,如果下载出错的话可能需要使用淘宝镜像下载

  设置淘宝镜像地址:npm config set registry https://registry.npmmirror.com

2、安装完成后需要选用版本,默认选择13.0.0,回车选择。

 3、安装完成后检查项目,会生成background.js和相关配置

 

 

4、至此,electron已完成安装,根据上图中的命令可进行运行与打包。

  npm run electron:build 为 electron 打包方法
  npm run electron:serve 为 electron 本地运行方法

运行成功:

 

二、确保项目正常运行后,尝试运行打包。

执行npm run electron:build后,报错--error ERR_ELECTRON_BUILDER_CANNOT_EXECUTE

 

 

根据上图报错是资源未下载成功,可以手动下载。

此处一般会有四个资源下载失败,可一次性下载完成也可根据步骤下载。

1、根据提示下载与当前elecron本版一致的 win32-x64 然后放到 参考路径 : C:\Users\Admin/AppData\Local\electron\Cache
  https://github.com/electron/electron/releases/download/v13.6.9/electron-v13.6.9-win32-x64.zip

2、根据提示下载对应的 winCodeSign 解压后 放到 C:\User\Admin/AppData\Local\electron-builder\Cache 没有 winCodeSign 文件夹 自己新建
  https://github.com/electron-userland/electron-builder-binaries/releases/tag/winCodeSign-2.6.0

3、根据提示下载对应的 nsis 和 对应的 nsis-resources 放到 C:\User\Admin/AppData\Local\electron-builder\Cache/nsis 没有 nsis文件夹 自己新建
  https://github.com/electron-userland/electron-builder-binaries/releases/tag/nsis-3.0.4.2
  https://github.com/electron-userland/electron-builder-binaries/releases/tag/nsis-resources-3.4.1

 

 

1、下载对应electron

  地址:https://github.com/electron/electron/releases/download/v13.6.9/electron-v13.6.9-win32-x64.zip

  下载后放到此目录:C:\Users\AppData\Local\electron\Cache

         

 2、下载对应winCodeSign

  地址:https://github.com/electron-userland/electron-builder-binaries/releases/tag/winCodeSign-2.6.0

  下载后解压放到此目录:C:\Users\AppData\Local\electron\Cache\winCodeSign

 

3、下载对应nsis

  地址:https://github.com/electron-userland/electron-builder-binaries/releases/tag/nsis-3.0.4.2

  下载后放到此目录:C:\Users\AppData\Local\electron\Cache\nsis

 

4、下载对应nsis-resources

  地址:https://github.com/electron-userland/electron-builder-binaries/releases/tag/nsis-resources-3.4.1

  下载后放到此目录:C:\Users\AppData\Local\electron\Cache\nsis

 

5、再次运行后,如果报这个错:说明可能是文件夹名字可能有中文,要么调整文件夹名称,要么在node_modules中修改

 修改:

  参考了网上的解决方法,思路是把编译出来的乱码用utf-8来编译:

  找到 node_module/app-builder-lib/out/targets/nsis/NsisTarget.js文件,在 executeMakensis 方法中加入相应的代码,

  

async executeMakensis(defines, commands, script) {
    const args = this.options.warningsAsErrors === false ? [] : ["-WX"];
    //添加此代码
    args.push("-INPUTCHARSET", "UTF8");

    for (const name of Object.keys(defines)) {
        const value = defines[name];

        if (value == null) {
            args.push(`-D${name}`);
        } else {
            args.push(`-D${name}=${value}`);
        }
    }
}

再次运行即可。

打包成功后:

 点击安装,桌面即有相应图标。

 

 

可能出现的问题:

1、vue的路由模式为history,但electron不支持history模式,注释掉即可

const router = new VueRouter({
  // mode: 'history',
  base: process.env.BASE_URL,
  routes
})

2、修改vue.config.js,路径必须修改为‘ ./ ’,不是这个后续打包好的页面可能会出现白屏,加载不出来的情况

module.exports = {   
    publicPath: './',   
} 

 

标签:桌面,builder,electron,nsis,Electron,下载,https,com,vue2.0
From: https://www.cnblogs.com/liangpi/p/17852162.html

相关文章

  • 启动vite和electron项目配置多个主进程
    推荐concurrently点击查看代码"dev":"concurrently\"nodemon--execelectron.\"\"vite\"",成熟的脚手架日常开发可以使用electron-vite(opensnewwindow)或electron-vite-vue(opensnewwindow)、electron-react-boilerplate(open......
  • 如何在关闭远程桌面后继续自动化程序
    问题描述通常情况下在远程连接关闭后windows将进入待机状态,无法进行界面渲染,所以某些自动化应用将无法运行,为了在远程连接关闭后仍然能够运行应用,需要使用下面的方式关闭远程桌面。解决方案创建文件close_mstsc_new.bat,复制以下代码并保存for/f"skip=1tokens=3"%%si......
  • kde桌面不同分辨率的显示器设置不同缩放
    kde桌面不同分辨率的显示器设置不同缩放xrandr命令可以查看当前使用的显示器名称#!/bin/bash#你可以在kde设置里先把你的主显器分辨率缩放比例设置好。在运行下面的命令。并不会影响你设置里的分辨率。简单的讲下面的命令会按你设置里真是生成的分辨率去计算#设置eDP-1显示器......
  • 界面组件Telerik UI for WinForms中文教程 - 创建明暗模式的桌面应用
    黑暗模式现在在很多应用程序中都挺常见的,但如何在桌面应用程序中实现它呢?这很简单,本文将为大家介绍如何使用一个类和命令行调用来实现!TelerikUIforWinForms拥有适用WindowsForms的110多个令人惊叹的UI控件。所有的UIforWinForms控件都具有完整的主题支持,可以轻松地帮助开发......
  • Windows7下ELectron应用的Input输入框在拼音输入中的失焦问题?
    Windows7下ELectron应用的Input输入框在拼音输入中的失焦问题主要是为了解决虚拟键盘(使用的simple-keyboard)的拼音输入问题(Windows自带的虚拟键盘因为不够方便和美观,所以没有采用;simple-keyboard其实也支持拼音输入,但是更不好用),最后决定通过Koffi(ffi,ffi-napi)调用user32.dll,模拟......
  • 更改Windows的远程桌面端口
    摘自:https://cloud.tencent.com/developer/article/1557774方法一:工具下载地址:https://pan.baidu.com/s/1Rt3ZFXY0sOD5okeb9VI3_A方法二:命令1.执行以下命令(将以下所有的36970更为新的要更改的端口后再执行):regadd"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control......
  • SpringBoot + vue2.0查询所用功能
    导入数据库文件CREATEDATABASE`springboot`/*!40100DEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ci*//*!80016DEFAULTENCRYPTION='N'*/CREATETABLE`users`(`id`intunsignedNOTNULLAUTO_INCREMENT,`name`varchar(40)CHARACTERSETu......
  • 通过VNC 链接Ubuntu 远程桌面
    UbuntuServer安装VNCServer#更新软件到最新,为了方便下载软件包sudoaptupdate#安装Xfce桌面环境sudoaptinstallxfce4xfce4-goodies-y#安装vncserversudoaptinstalltightvncserver-y#设置vncserver密码,在Password页面输入密码然后再输入一遍确认下就OK了vnc......
  • 一个简单案例的Vue2.0源码
    本文学习vue2.0源码,主要从newVue()时发生了什么和页面的响应式更新2个维度了解Vue.js的原理。以一个简单的vue代码为例,介绍了这个代码编译运行的流程,在流程中原始DOM的信息会被解析转换,存在不同的对象中。其中关键的对象有el、template、ast、code、render、renderfunction和vno......
  • electron打包步骤
    #npm清理缓存npmcacheclean--force#创建文件夹mkdirxxx&&cdxxx#初始化(entrypoint应为main.js,author必填,description必填)npminit#安装electron包npminstall--save-develectron#安装electron包报错的话1:npmconfigedit2:将下面三行加进去regis......