我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue3+electron12+dll开发客户端配置的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue3+electron12+dll开发客户端配置的方法

是因为项目需要联网谷歌商店下载并加载vue-devtools失败导致。

尝试了很多办法加载tools均失效,因此暂行手段:去掉tools。代码找到,去掉 installExtension 即可

app.on('ready', async () => {
  if (isDevelopment && !process.env.IS_TEST) {
    // Install Vue Devtools
    try {
    //  await installExtension(VUEJS_DEVTOOLS)
    } catch (e) {
      console.error('Vue Devtools failed to install:', e.toString())
    }
  }
  createWindow()
})

之前试了很多办法,不可用。后来再仔细对照以下,发现了一些问题。

vue3的版本和vue2版本的vue-devtools已然不同,所以vue2的dev-tools并不能给vue3使用,因此,需要下载vue3对应的开发工具。vue2版本最新为5.x,而vue3的版本则为6.x beta版本。可以通过crx4chrome下载此版本的插件。将下载好的crx解压出来,然后拷贝到工程根目录下 采用session加载的形式,将原来 await installExtension(VUEJS_DEVTOOLS)的部分替换为

import {session} from 'electron'

app.on('ready', async () => {
  if (isDevelopment && !process.env.IS_TEST) {
    // Install Vue Devtools
    try {
    const vue_devtools = 'ljjemllljcmogpfapbkkighbhhppjdbg-6.0.0-beta-13-Crx4Chrome.com'
    await session.defaultSession.loadExtension(path.resolve(vue_devtools))
    } catch (e) {
      console.error('Vue Devtools failed to install:', e.toString())
    }
  }
  createWindow()
})

启动项目后,即可以查看 vue 的扩展。 对于

(node:5904) ExtensionLoadWarning: Warnings loading extension at E:\scan\vue3_electron\ljjemllljcmogpfapbkkighbhhppjdbg-6.0.0-beta-13-Crx4Chrome.com:
Unrecognized manifest key 'browser_action'.
Unrecognized manifest key 'update_url'.
Permission 'contextMenus' is unknown or URL pattern is malformed.
Cannot load extension with file or directory name _metadata. Filenames starting with "_" are reserved for use by the system.
(Use `electron --trace-warnings ...` to show where the warning was created)

可以不予理会。如果不想看到烦人的提示可以到tools的manifest.json中删掉提示对应的内容

注意事项

<script setup> 语法不可以使用

当使用script-setup作为模块时,在serve阶段可以正常使用,但是在build之后组件未加载,页面呈现空白,且不报错,原因未知

使用 electron-edge-js 加载 c# 开发的 dll 文件,配置过程略微繁琐,花费2天时间寻求解答,但是均未果,以下是解决办法,需要对症下药

c++和c#开发的dll使用不同的加载器,c++使用ffi-napi。

使用edge需要同时增加三处配置

当什么都没有配置时,将会发生 Uncaught (in promise) Error: Cannot find module '...\node_modules\electron\dist\resources\electron.asar\renderer\native\win32\x64\14.16.0\edge_nativeclr' 此时需要在vue.config.js文件增加,如果没有配置文件,则需要在package.json同级创建。

module.exports = {
    pluginOptions: {
        electronBuilder: {
            externals: ['electron-edge-js']
        }
    }
}

当配置未开启时,将不能使用 __dirname __filename等nodejs内置变量
Uncaught (in promise) ReferenceError: __dirname is not defined 首先需要配置 new BrowserWindow

{      
    // 如果使用到nodejs的api,则打包时需要将此设置为true
    nodeIntegration: true,
    // 同时,需要设置此项为false
    // 未设置时报 Uncaught ReferenceError: require is not defined
    contextIsolation: false  
}

以上配置完成后会报 Uncaught (in promise) TypeError: fs.existsSync is not a function
此时需要继续增加 vue.config.js 的配置项

module.exports = {
    pluginOptions: {
        electronBuilder: {
            externals: ['electron-edge-js'],
            // 此处同样需要开启,将会在编译阶段将引用关系写入
            nodeIntegration: true, 
        }
    }
}

如果单独配置此项,但是并没有开启 new BrowserWindow的 nodeIntegration: true ,则会发生 Uncaught ReferenceError: require is not defined

此外,对于dll放置的文件夹,一般在项目根目录创resources用于存放资源,并且项目打包过程中会不会直接打包资源目录,所以需要增加资源配置,以防止出错。对于文件的引用,在开发环境下,为当前所看到的结构,当编译打包后,为安装目录下resources目录,所以生产和开发的引用文件存在一定区别,可以实验后再看文件引用

 module.exports = {
     pluginOptions: {
         electronBuilder: {
             externals: ['electron-edge-js'],
             // 此处同样需要开启,将会在编译阶段将引用关系写入
             nodeIntegration: true, 
             builderOptions:{
                 extraResources: {
                     // 拷贝静态文件到指定位置,否则会提示文件找不到
                     from: 'resources/',
                     to: './'
                 },
             }
         }
     }
 }

提供文件获取目录方法,可以直接获取不同操作系统下app的resource目录,如果是window即 process.platform==='win32'

const path = require('path')
export function getAppResourcePath (filePath:string) {
    if (process.platform === 'darwin' || process.platform === 'linux') {
        if (process.env.NODE_ENV === 'development') {
            return path.resolve('resources/' + filePath)
        } else {
            return path.join(__dirname, '..') + filePath
        }
    } else {
        return path.resolve('resources/' + filePath)
    }
}

使用setup语法时,需使用require('electron-edge-js')引入,不可以使用import,否则会报 Syntax Error: TypeError: Cannot read property 'content' of null 而非 setup语法,则可以直接import

无边框窗口

系统本身是带有框架的,如果需要自定义框架,可以使用frameless 设置,如果需要使用自定义组件(比如 div.custom-frame-title)拖拽操作窗口时,需要给对应的元素增加样式:

 .custom-frame-title {
   -webkit-user-select: none; // 此项防止与文本选择冲突
   -webkit-app-region: drag; // 此项为系统相应状态栏
 }

前后台通知

import {ipcMain,ipcRenderer} from 'electron'

在electron中有很多可用api,其中最重要的是:ipcMain和ipcRenderer,用于ui进程和系统进程的通信。 在vue内使用ipcRenderer.on('eventname') 接受系统发来的消息,用ipcRenderer.send('eventname') 发送通知给系统,同样ipcMain可以在主线程使用。

ipc通常结合自定义标题栏完成以下操作,或者其他需要操作窗口本身的事件

win.minimize() //最小化窗口
win.maximize() //最大化窗口
win.close() //关闭窗口
win.hide() //隐藏窗口

以上就是vue3+electron12+dll开发客户端配置的方法的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue3+electron12+dll开发客户端配置的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue3+electron12+dll开发客户端配置的方法

修改仓库源由于electron版本的未知性,可能存在serve可用而build之后打开白屏的情况,因此需要谨慎对待。最好在版本可用的情况下commit一个版本,方便代码回滚,如果谁有更好的资料希望共享。在开始配置前,可以将yarn和npm的rc文件稍作修改,使用命令或者文件直接修改.npmrc或者.yarnrc,这两个全局配置文件一般在C:\user\你的当前账户这个文件夹下,或者在当前项目下新建文件命令rc文件以局部更改配置。因为electron下载会因为网络问题而失败,因此修改为淘宝源,华为
2023-05-14

vue3+electron12+dll开发客户端配置的示例分析

小编给大家分享一下vue3+electron12+dll开发客户端配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!修改仓库源由于electron版本的
2023-06-15

怎么使用vue3+electron12+dll开发客户端配置

今天小编给大家分享一下怎么使用vue3+electron12+dll开发客户端配置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下
2023-07-06

vue开发客户端如何配置

这篇文章主要介绍了vue开发客户端如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue开发客户端如何配置文章都会有所收获,下面我们一起来看看吧。修改仓库源由于electron版本的未知性,可能存在ser
2023-07-04

Java客户端开发的方法是什么

这篇文章主要讲解了“Java客户端开发的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java客户端开发的方法是什么”吧!这一步是对之前进行较大的改动。增加的类也比较多。包结构如下
2023-06-17

Linux系统上Gitlab客户端的安装配置方法

本篇内容主要讲解“Linux系统上Gitlab客户端的安装配置方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统上Gitlab客户端的安装配置方法”吧!1. 安装依赖包请记住,De
2023-06-12

使用zerotier planet自建服务器客户端配置方法

1、客户端配置 客户端主要为Windows, Mac, Linux, Android 1.1 Windows 配置 1、在本页下载zerotier客户端 2、将 planet 文件覆盖粘贴到C:\ProgramData\ZeroTier\O
2023-08-19

linux samba服务器客户端的详细配置方案

本篇内容介绍了“linux samba服务器客户端的详细配置方案”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!配置服务器端的打印机及其共享:
2023-06-17

pyenv开发环境的配置方法

这篇文章主要介绍“pyenv开发环境的配置方法”,在日常操作中,相信很多人在pyenv开发环境的配置方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pyenv开发环境的配置方法”的疑惑有所帮助!接下来,请跟
2023-06-04

vue3+vite+axios 配置连接后端调用接口的实现方法

这篇文章主要介绍了vue3+vite+axios 配置连接后端调用接口的实现方法,在vite.config.ts文件中添加配置,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
2022-12-08

配置Java开发环境的方法教程

配置Java开发环境的方法教程?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先,从Oracle的官网下载jdk的安装包点我下载Java SE开发套件先点接受许可协议,然后
2023-05-31

Linux下的SSH端口转发配置的方法介绍

本篇内容介绍了“Linux下的SSH端口转发配置的方法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通常情况下两个不同的网络之间总会开放
2023-06-13

Node.js发送HTTP客户端请求并显示响应结果的方法示例

本文实例讲述了Node.js发送HTTP客户端请求并显示响应结果的方法。分享给大家供大家参考,具体如下: wget.js:发送HTTP客户端请求并显示响应的各种结果 options对象描述了将要发出的请求。 data事件在数据到达时被触发,
2022-06-04

微信小程序API调起客户端小程序设置界面的方法

这篇文章主要介绍“微信小程序API调起客户端小程序设置界面的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序API调起客户端小程序设置界面的方法”文章能帮助大家解决问题。wx.openS
2023-06-26

编程热搜

目录