【electron】手把手教你在 electron 环境下使用 vue-devtools,附详细报错解决办法

这篇具有很好参考价值的文章主要介绍了【electron】手把手教你在 electron 环境下使用 vue-devtools,附详细报错解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🛫 问题

描述

对于某些electron项目,启动的时候,控制台会打印Failed to fetch extension, trying 4 more times这样的日志。
作为重度强迫症患者,必须解决掉。
electron-devtools-installer,# electron,electron,vue.js,javascript,插件,devtools

环境

版本号 描述
文章日期 2023-10-12
操作系统 Windows
electron 22.3.27 最后一个支持win7的大版本
node 16.16.0
vue-devtools 6.5.1

1️⃣ vue-devtools

Vue Devtools 是一款由 Vue.js 官方开发的开发工具,旨在帮助开发者更轻松地调试和开发 Vue.js 应用程序。它是一个浏览器扩展,可以安装在 Chrome、Firefox 和 Safari 等主流浏览器中。

Vue Devtools 提供了丰富的功能,包括:

  • 组件树查看器:可以查看整个应用程序的组件结构和关系,方便调试和优化。
  • 状态查看器:可以实时查看组件的状态和数据变化,便于调试和排查问题。
  • 事件监听器:可以查看组件上的事件监听器,便于调试事件处理逻辑。
  • 性能分析:可以分析应用程序的性能瓶颈,帮助优化性能。
  • 开发者工具:提供了一系列方便的开发者工具,如组件修改、样式检查等。

总之,Vue Devtools 是 Vue.js 开发者必备的工具之一,可以帮助开发者更高效地开发和调试 Vue.js 应用程序。

问题来源

为了方便使用vue-devtools。很多项目都配置了库electron-devtools-installer,该库会自动下载并加载vue-devtools。
但是,下载地址国内无法正常访问,导致报错

解决思路

  • 屏蔽electron-devtools-installer加载的代码
  • 通过其它方式加载本地vue-devtools插件

上面是解决思路,下面我们将实操起来,详细讲解其操作步骤。

2️⃣ 屏蔽electron-devtools-installer加载的代码

electron-devtools-installer加载很简单,直接使用库中的方法即可:electronDevtoolsInstaller(VUEJS_DEVTOOLS)
下面是库的常见使用示例,直接屏蔽掉electronDevtoolsInstaller所在代码就行了。

import electronDevtoolsInstaller, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'

app.on("ready", async () => {
  if (isDevelopment && !process.env.IS_TEST) {
    // Install Vue Devtools
    try {
       electronDevtoolsInstaller(VUEJS_DEVTOOLS)
        .then((name) => console.log(`installed: ${name}`))
        .catch(err => console.log('Unable to install `vue-devtools`: \n', err))
    } catch (e) {
      console.error("Vue Devtools failed to install:", e.toString());
    }
  }
  createWindow();
});

3️⃣ 加载本地vue-devtools插件

代码实现electron加载本地插件

electron包含加载本地插件的接口,直接调用session.defaultSession.loadExtension,传递插件路径即可。
electron-devtools-installer,# electron,electron,vue.js,javascript,插件,devtools

核心代码如下所示:

      // 新增的:安装本地vue-devtools
      const { session } = require("electron");
      const path = require("path");
      session.defaultSession.loadExtension(
        path.resolve(__dirname, "../../_devtools/Vuejs-devtools-6.5.1")
      );

获取vue-devtools:【推荐】Edge下载最新插件

  • 打开Edge浏览器:electron-devtools-installer,# electron,electron,vue.js,javascript,插件,devtools
  • 打开插件下载地址:https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home
  • 搜索vue-devtools,点击“获取”即可安装
    electron-devtools-installer,# electron,electron,vue.js,javascript,插件,devtools
  • 获取插件ID
    浏览器中打开edge://extensions/,找到Vue.js devtools,点击后打开详情页。
    这时浏览器的地址中显示出插件ID:olofadcdnkkjdfgjcmjaadnlehnnihnl
    electron-devtools-installer,# electron,electron,vue.js,javascript,插件,devtools

打开目录C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Extensions\olofadcdnkkjdfgjcmjaadnlehnnihnl(其中Administrator替换为自己的电脑账号名),我们将下面内容拷贝到我们的项目目录即可。
electron-devtools-installer,# electron,electron,vue.js,javascript,插件,devtools

获取vue-devtools:源码编译

  • 手动clone项目vue-devtools
  • 然后切换到master分支,默认的是dev分支:
  • 编译生成插件
# REM 手动clone项目vue-devtools
git clone https://github.com/vuejs/vue-devtools.git

# REM 然后切换到master分支,默认的是dev分支:
git checkout master

# REM 进入vue-devtools根目录:
npm install
npm run build

获取vue-devtools:网上找编译好的

这个就不说了,简单方便,但是获取的不一定是最新的。
小编使用的是这个项目的:https://gitee.com/ziyoren/electron-vite-vue2

🛬 结论

遇到问题,多搜索,多思考,结合现有知识,找到合适的方案。

这个问题半年前就发现了,当时没有解决掉,后来经常想到该问题,最近想到通过Edge浏览器可以下载最新的插件,省去了各种可能遇到的坑,最终解决问题。文章来源地址https://www.toymoban.com/news/detail-726471.html

📖 参考资料

  • 【chrome基础】Chrome、Chromium、libcef、electron版本关系大揭秘! https://blog.csdn.net/kinghzking/article/details/125896594
  • electron+vue项目添加vue-devTools https://www.jianshu.com/p/cc48d4520de3

到了这里,关于【electron】手把手教你在 electron 环境下使用 vue-devtools,附详细报错解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你在云环境炼丹:Stable Diffusion LoRA 模型保姆级炼制教程

     很多同学都想要自己的专属AI模型,但是大模型的训练比较费时费力,不太适合普通用户玩。AI开发者们也意识到了这个问题,所以就产生了微调模型,LoRA就是其中的一种。在AI绘画领域,只需要少量的一些图片,就可以训练出一个专属风格的LoRA模型,比如某人的脸、某个姿

    2024年02月03日
    浏览(53)
  • 手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年02月12日
    浏览(53)
  • 【运维】手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年02月06日
    浏览(62)
  • 【Docker】手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年01月19日
    浏览(61)
  • 手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

            需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博

    2024年02月14日
    浏览(61)
  • 【运维】手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

            需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博

    2024年02月08日
    浏览(61)
  • 手把手教你在Vivado创建一个RAM的IP核并使用ILA工具验证

    RAM的英文全称是Random Access Memory,即随机存取存储器,它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据,其读写速度是由时钟频率决定的。RAM主要用来存放程序及程序执行过程中产生的中间数据、运算结果等。 单端口:只有一个端口,

    2024年01月25日
    浏览(57)
  • 【实战】手把手教你在 vscode 中写 markdown

    markdown 语法、markdown 插件咱先放放,先说最头疼的,图片问题 相对于 HBuilder 自带 markdown 图片粘贴功能来说,vscode显得不那么友好,若是不装插件粘贴截图就只能手动进行如下操作: 截取图片 将图片存在特定位置 在markdown文件中通过路径引入图片 预览 最终我找到了 Paste I

    2024年02月13日
    浏览(72)
  • 手把手教你在 CentOS 7 下升级 OpenSSL

      这篇文章记录着如何在 CentOS 7 上升级 OpenSSL。会逐步介绍所需步骤,包括备份,下载和安装,以及配置等。 OpenSSL 是用于保护数据安全的重要工具。它能提供加密,解密等多项功能。然而,随着技术的发展和新的安全漏洞的出现,使用最新版本的 OpenSSL 成为了重要的需求

    2024年02月16日
    浏览(68)
  • 手把手教你在ARM板上写一个驱动程序!

    摘要:搞嵌入式有两个方向,一个是嵌入式软件开发(MCU方向),另一个是嵌入式软件开发(Linux方向)。其中MCU方向基本是裸机开发和RTOS开发。而Linux开发方向又分为驱动开发和应用开发。其中应用开发相比于驱动开发来说简单一些,因为搞驱动你要和Linux内核打交道。而我们普

    2024年02月01日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包