干货 | Electron在DevTools中的探索与实践

Electron DevTools扩展 为了使调试更容易,Electron 原生支持 Chrome DevTools 扩展。对于大多数 DevTools 的扩展,我们可以直接下载源码,然后通过 BrowserWindow.addDevToolsExtension 加载它们。Electron 会记住已经加载了哪些扩展,所以不需要每次创建一个新 window 时都调用 BrowserWindow.addDevToolsExtension。 如何加载一个DevTools扩展程序 要在 Electron 中加载一个扩展,需要在 Chrome 浏览器中下 阅读详情

作者简介

隋丰蔚,携程无线平台研发部前端工程师,现负责开发者工具NFES Developer Tools的设计与研发。


引言


目前,主流的桌面应用开发方法有几种,一是使用纯Native技术栈进行开发,比如说Windows上使用C++,Mac上使用Objective-C。这种方式能够实现最好的性能,但是开发成本比较高,周期也长,而且需要分别开发Windows和Mac版本,人员投入比较大。


二是基于Qt等Native框架进行开发,这种方案可以获得接近Native的性能体验,但是学习成本仍然较高,而且界面开发效率不高,没有办法满足快速迭代的需求。


第三种则是以Electron为代表的,允许我们使用web技术开发桌面应用的框架。这种方案背后是整个web技术体系,资源丰富,跨平台性好,开发效率高,甚至于我们可以使用一套代码逻辑同时开发桌面应用和web应用,特别适合企业用来开发一些偏业务型的桌面应用。而且,Electron由GitHub维护,社区活跃度高,像我们熟悉的VS Code,Skype都是基于Electron构建的。


因此,如果不是要开发对性能要求很高的桌面应用,团队中web开发人员又相对充足,Electron是一个比较合适的选择。


本文将介绍Electron、开发过程中可能会遇到的问题和场景,以及Electron在DevTools中的实践,希望可以为想要开发Electron应用的小伙伴们提供一点参考或者思路。


一、初识Electron



根据官方文档,基于Electron,我们可以使用JavaScript,HTML 和 CSS构建跨平台的桌面应用。目前Electron支持的平台有Mac, Windows 和 Linux。


1.1 Quick Start


先来看一下如何使用Electron快速构建一个桌面应用,目录结构如下图所示:


640?wx_fmt=jpeg


其中,index.html就是我们平时开发的web页面,负责界面展示。main.js则是整个Electron应用的入口文件,如下:


640?wx_fmt=jpeg


main.js中首先引入了app和BrowserWindow模块,app模块主要负责应用级别的事情,包括应用的生命周期。可以看到,Electron初始化完成之后,会触发app ready,这时就可以开始做自己的事情了,比如说在这里我们创建了一个窗口,然后加载了index.html。如此,一个Electron应用就可以运行了,Easy Peasy。


1.2 Electron工作机制


之所以可以使用web技术构建桌面应用,其实是因为Electron做了一个整合,它集成了Chromium和Node.js,同时提供了一系列可以操作原生GUI的API。


而能够做这个整合,首先得益于Chromium和Node.js都是基于v8引擎来执行js的,所以给了一种可能,他们是可以一起工作的。


但是有一个问题,Chromium和Node.js的事件循环机制不同。我们知道,Node.js是基于libuv的,Chromium也有一套自己的事件循环方式,要让他们一起工作,就必须整合这两个事件循环机制。


640?wx_fmt=png


如上图所示,Electron采用了这样一种方式,它起了一个新的线程轮询libuv中的backend fd,从而监听Node.js中的事件,一旦发现有新的事件发生,就会立即把它post到Chromium的事件循环中,唤醒主线程处理这个事件。


1.3 Electron应用架构


Chromium是多进程模式,每个Tab都是一个独立的进程在运行,从而确保了它的稳定性。Electron延续了多进程的模式,每个窗口对应一个独立的渲染进程,里面运行的就是web页面。渲染进程统一由主进程管理,如下图所示。


640?wx_fmt=png


1.4 通信


在Electron中,应用级别的活动以及原生GUI模块只能在主进程中运行,渲染进程则主要负责界面展示。这时候就需要解决主进程和渲染进程之间的通信问题。


IPC(Inter-Process Communication)


Electron提供了两个模块,ipcMain和ipcRenderer,它们都是Node.js EventEmitter的实例,使用哪个取决于所在的进程。


主进程:

640?wx_fmt=jpeg


渲染进程:

640?wx_fmt=jpeg


remote模块


remote模块允许在渲染进程中直接调用主进程的模块和方法。从底层实现的角度,remote其实是对ipc做了一层封装,它除了能帮我们避免繁琐的ipc消息传递,remote和ipc还有一个本质的区别。


来看一个具体的例子,如下图所示,主进程的global上挂了一个globalData对象,现在想在渲染进程中获取这个对象中test属性的值。


主进程:

640?wx_fmt=jpeg


渲染进程:

640?wx_fmt=png


来看一下remote是怎么取值的。如下图所示,首先,渲染进程通过ipc给主进程发消息说需要global上的globalData对象,主进程收到消息后,取到相应的对象,处理之后就把globalData相关的信息传回到渲染进程。渲染进程拿到对象之后,直接重写了它的get和set方法。因此,这时候再获取test值的时候,渲染进程会再次发送消息到主进程来获取。


640?wx_fmt=png

          

基于这样的机制,可以看出,虽然是在两个进程中,但是完全可以把remote取回的对象当作是对主进程中这个对象的引用,因为我们获取到的值总是和主进程中的一致,而使用ipc通信,其实是对数据进行了序列化和反序列化,渲染进程拿到的对象和主进程已经没什么关系了。


二、探索Electron



到这里,大家对Electron已经有一个基本的印象了。下面来看Electron开发过程中可能会遇到的几个问题和场景。


2.1 启动时间优化


Electron应用创建窗口之后,由于需要初始化窗口,加载html,js以及各种依赖,会出现一个短暂的白屏。除了传统的,比如说延迟js加载等web性能优化的方法,在Electron中还可以使用一种方式,就是在close窗口之前缓存index页面,下次再打开窗口的时候直接加载缓存好的页面,这样就会提前页面渲染的时间,缩短白屏时间。


但是,优化之后也还是会有白屏出现,对于这段时间可以用一个比较tricky的方法,就是让窗口监听ready-to-show事件,等到页面完成首次绘制后,再显示窗口。这样,虽然延迟了窗口显示时间,总归不会有白屏出现了。


2.2 CPU密集型任务处理


对于cpu密集型或者long-running的task,我们肯定不希望它们阻塞主进程或者影响渲染进程页面的渲染,这时候就需要在其他进程中执行这些任务。通常有三种方式:


  • 使用child_process模块,spawn或者fork一个子进程;

  • WebWorker;

  • Backgroundprocess。在Electron应用中,我们可以创建一个隐藏的Browser Window作为background process,这种方法的优势就在于它本身就是一个渲染进程,所以可以使用Electron和Node.js提供的所有api。


2.3 数据持久化存储


为了使应用在offline的情况下也可以正常运行,对于桌面应用,我们会将一些数据存储到本地,常见方式有:


  • localStorage。对于渲染进程中的数据,可以存到localStorage中。需要注意的是主进程是无法获取的。

  • 嵌入式数据库。我们也可以直接打包一个嵌入式数据库到应用中,比如说SQLite,nedb,这种方式比较适合大规模数据的存储以及增删改查。

  • 对于简易的配置或者用户数据,可以使用electron-config等模块,将数据以JSON格式保存到文件中。


2.4 安全性考虑


在Electron应用中,web页面是可以直接调用Node.js api的,这样就可以做很多事情,比如说操作文件系统,但同时也会带来安全隐患,建议大家渲染进程中禁用NodeJS集成。


如果需要在页面中使用node或者electron的api,可以通过提前加载一个preload.js作为bridge,这个js会在所有页面js运行前被执行。我们可以在里面做很多事情,比如说把需要的node方法放到global或者window中,这样页面中就没办法直接使用node模块,但是又可以使用需要的某些功能,如下图所示。


640?wx_fmt=png


除此之外,还要注意,使用安全的协议,比如说https加载外部资源。在Electron应用中,可以通过监听新窗口创建和页面跳转事件,判断是否是安全跳转,加以限制。亦可以通过设置CSP,对指定URL的访问进行约束。


2.5 应用体积优化


对于Electron应用打包,首先会使用webpack分别对主进程和渲染进程代码进行处理优化,和web应用一样。有点区别的地方是配置中主进程的target是electron-main, 渲染进程的target是electron-renderer。除此之外,还要对node做一些配置,我们是不需要webpack来polyfill或者mocknode的全局变量和模块的,所以设为false。


之后,在基于electron-builder将应用build成不同平台的安装包,需要注意的是,对于package.json,尽可能地把可以打包到bundle的依赖模块,从dependencies移到devDependencies,因为所有dependencies中的模块都会被打到安装包中,会严重增大安装包体积。


三、Electron在NFES DevTools中的实践



最后,分享一下Electron在NFES DevTools中的应用。


NFES是携程新推出的一整套无线前端解决方案,适用于pc,h5,hybrid多个场景,同时支持服务端渲染和单页模式。


NFES DevTools作为辅助开发平台,能够为开发人员提供稳定的,不受本地Node.js版本、全局模块等外部依赖干扰的开发环境,以及NFES项目相关的构建,调试,发布,性能监控等功能,从而帮助开发人员更好的开发和维护NFES应用。


640?wx_fmt=png


先从整体应用架构的角度看一下NFES DevTools。如上图所示,NFES DevTools是基于Electron构建的。


主进程主要做了这几件事情,首先是app级别的活动,包括生命周期,自动更新;然后提供了一系列的remote service,比如说窗口管理,应用级别数据管理,cookie管理,让渲染进程可以直接调用。其次就是Native GUI相关的活动,像创建原生菜单,托盘图标,通知提醒等。最后,在窗口创建之前,我们在主进程中本地起了一个node server,用来跑web应用。


对于渲染进程,主要是基于React,Redux写的,Web Worker用于处理复杂计算,避免阻塞页面渲染。除此之外,我们还启了一个background进程,用来执行比如说文件监控这样的活动。


对于功能模块的实现,主要看下调试功能。对于调试,NFES DevTools既提供开发态代码的调试,也支持生产态代码的调试。


3.1 开发态调试


开发过程中的调试主要包括以下几点:


  • 埋点数据查看

  • 性能面板,帮助开发人员在开发时期发现页面可能存在的性能问题。比如说,NFES支持服务端渲染,所以服务端会传一些数据到客户端,但这样会增大doc的体积,影响页面性能。所以,我们会做一个监控,看这些数据是否真的在render时被使用了,如果没有我们会提醒开发人员做优化。

  • web和Node.js代码调试


640?wx_fmt=png


对于web和Node.js代码调试功能的实现,由于Electron自身提供的调试webview的api功能比较弱,不能满足需求,所以我们决定直接使用Chromium提供的能力。


相信大家应该都用过chrome开发者工具,其实它本质上就是一个web app,通过Chromium提供的远程调试协议,开发者工具就可以和chromium基于WebSocket进行通信,如上图左边所示。


调试功能也是基于这个协议实现的,但是如果让调试界面直接和Chromium连接会有两个问题,首先是我们没办法完全控制调试过程,不能主动向Chromium发送指令;其次是,Chromium提供的WebSocket server只允许一个client跟它连接,多个client就会出现链接已经被占用的情况。


为了解决这两个问题,我们在调试界面和Chromium之间做了一层拦截,如上图右边所示,首先起了一个WebSocketserver,让它充当Chromium跟调试界面连接;然后通过接口获取到真实的WebSocket调试地址,起了一个client让它跟Chromium链接。通过这种方式,就可以拦截掉所有调试界面和Chromium之间的WebSocket通信,之后做一个转发就可以了。


3.2 生产态调试


生产态调试功能是为了帮助开发人员更方便地调试线上代码。通常,调试线上代码会选择使用fiddler,将线上文件代理到本地来进行调试,如下图所示。NFES DevTools也支持这种方式,但是这里想跟大家聊一下另一种调试方法。


640?wx_fmt=png


如下图所示,开发人员在发布NFES应用的时候可以选择同步生成一个生产态调试环境,这个调试环境和发布到线上的是一致的,但是多了sourcemap。


当开发人员需要调试线上的代码的时候,可以开启代理功能,开发人员设置好浏览器代理后,我们会拦截浏览器中的http/https请求,把其中与NFES应用相关的请求代理到生产态调试环境中,对请求头,响应头,返回值作出相关处理后再返回给客户端,这样开发人员就可以方便的使用sourcemap调试线上代码。


640?wx_fmt=png


代理功能的实现是在background进程中,我们基于Node.js搭建了代理服务器,并将拦截到的请求数据存储在nedb数据库中,因为请求量可能比较大,并且需要根据请求状态的变化对数据进行更新。


数据库插入或者更新数据之后会通知WebSocket服务器,实时发送数据到渲染进程,然后在Web Worker中计算好需要展示/更新的节点信息之后,重新渲染http请求列表。


四、结语



本文简单介绍了Electron,由于它整合了Chromium和Node.js,所以基于Electron,可以使用web技术开发跨平台的桌面应用。我们也了解了Electron的工作机制,以及在开发过程中可能会遇到的白屏,多进程,数据持久化,安全性等问题/场景。


另外也分享了Electron在NFES DevTools中的实践,包括对Electron,Chromium,Node能力的应用,希望可以为想要开发Electron应用的小伙伴们有一点启发。




抓紧上车~

5月25日上海

新终端新技术应用实践沙龙

戳下方图片报名


640?wx_fmt=jpeg


【推荐阅读】



640?wx_fmt=jpeg



用C#语言实现记事本 本次程序设计作业为用C#语言设计一个记事本,设计的记事本应与电脑系统自带的记事本类似,最后实现的界面及功能应类似于下图。 阅读详情

相关推荐

Ubuntu22.04下安装LDAP

在Ubuntu22.04的时候可以使用apt的方式来安装,在安装LDAP的web 服务器的时候可以考虑选择 LDAP 帐户管理器 (LAM)。因为 PHPLDAPadmin 安装时需要 php 的环境依赖,相对来说安装麻烦。此外在 PHPLDAPadmin 中创建组织和用户时与平常的语法有很大不同,对新手来说不友好。

dl_11的博客 3944

逆向工程实战:解密网易云音乐NCM音频格式与构建本地化工具链

数字版权管理(DRM)技术通过加密和访问控制保护数字内容,其核心原理涉及对称加密算法(如AES)和密钥管理机制。在音频处理领域,DRM技术常被用于保护流媒体服务的音乐文件,实现版权控制。本文聚焦于对网易云音乐NCM加密格式的逆向工程实践,通过分析其文件结构、密钥派生逻辑和加密原理,构建了一套基于Python的本地化解密工具链。该方案涉及对AES加密算法的应用、密钥提取以及音频元数据处理,最终实现将NCM格式转换为通用MP3或FLAC格式,解决了跨平台播放的兼容性问题,为技术爱好者提供了从原理到实践的完整参考

weixin_29323049的博客 312

通达信大单资金实时监控与播报插件:股票分析的实用利器——大红球

本文介绍了一款专为通达信软件设计的大单资金实时监控与播报插件,该插件以其傻瓜式操作和入门级特性在股民中广受欢迎。插件核心功能包括与通达信版面的无缝联动、大单金额范围的自定义设置、资金流动的可视化展示以及智能声音播报等。其技术架构基于本地网页形式,自带分时图显示功能,数据实时更新且无需L2账户,承诺永久免费升级。插件通过红绿球的大小和颜色直观展示资金规模与买卖方向,顶端全局统计功能提供宏观资金流动分析。尽管插件数据具有较高参考价值,但投资者仍需结合其他因素进行综合判断。插件界面可自适应调整,提供个性化使用体验

guleba的博客 6589

Electron 打开开发者工具 devtools

平时,我们利用chrome要调试网页的时候,按F12(mac下面是shift+花+i)打开的开发者工具,就是这个devtools,或者可以称之为“开发者模式”默认状态下,开发者工具的位置是上一次工具打开的位置(左边,右边,下边都有可能。取决于上一次的状态,但不会是分离状态,也没有处于顶部的状态)。在electron开发的过程中,可以用代码控制打开自带chrome的devtools开发者工具,进而调试渲染教程页面。Electron 打开开发者工具 devtools。分离状态打开devtools。

3060

quartus 13.1常见报错解决方法

在使用quartus中会遇到很多由于安装或设置不规范造成的错误。我就目前我遇到的一些错误以及我的解决方法分享给大家,这个文章将会持续更新,如果读者有遇到软件中错误无法解决的问题,也欢迎在评论区留言。 一、编译出现lience错误 在对设计的电路编译时,系统在程序运行3秒内即结束并报错,大概意思为现有的证书不支持编译。这个常见问题源自破解不成功,这里读者很有可能犯的错误是在使用破解器的时候没有区分x86(即32-bit)和x64软件破解器对应的文件夹。 如图所示有两种破解器,分别对应32位和64位的软件,大部

肥宅的博客 3万+

[华为]华为无线控制器AC6508简单配置实例

用户需求:3个地址段,分别是领导、员工、访客,访问控制策略是只允许访客上网,不允许访客访问内网。 vlan173为设备的管理地址和AP获取的地址,领导、员工、访客的vlan分别是vlan131/vlan132/vlan133 首先是许可的下载,使用华为的账号登陆http://app.huawei.com/isdp ,然后按照说明输入许可,下载许可,将许可导入到设备。 web界面访问后,直接按照配置向导配置就可以了。 1.基本配置里主要配置license、设备名称、设备时间 2.端口配置:连接上

日子_很简单 2万+

electron的devtools设置

mainWindow = new BrowserWindow({ height: sHeight, width: sWidth, useContentSize: true, autoHideMenuBar: true, //是否隐藏菜单 }) // mainWindow.webContents.openDevTools() //关闭开发者工具使用 mainWindow.webContents.closeDevTools(); mainWin..

梧桐芊羽的博客 7484

AUTOSAR实战:手把手教你配置EthTsync模块,搞定车载以太网时间同步

本文详细解析AUTOSAR架构中EthTsync模块的配置方法,实现车载以太网时间同步。通过对比gPTP与PTP协议差异,提供从开发环境准备到参数配置、模块集成的全流程指南,并分享性能优化与调试技巧,帮助开发者实现微秒级同步精度,满足自动驾驶等高精度时间同步需求。

weixin_28736335的博客 372

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

Vue Devtools 是一款由 Vue.js 官方开发的开发工具,旨在帮助开发者更轻松地调试和开发 Vue.js 应用程序。这个问题半年前就发现了,当时没有解决掉,后来经常想到该问题,最近想到通过Edge浏览器可以下载最新的插件,省去了各种可能遇到的坑,最终解决问题。总之,Vue Devtools 是 Vue.js 开发者必备的工具之一,可以帮助开发者更高效地开发和调试 Vue.js 应用程序。遇到问题,多搜索,多思考,结合现有知识,找到合适的方案。这个就不说了,简单方便,但是获取的不一定是最新的。

kinghzking的专栏 6047

【用unity实现100个游戏之19】制作一个3D传送门游戏,实现类似鬼打墙,迷宫,镜子,任意门效果(附项目源码)

本文介绍了Unity中实现传送门效果的完整流程。通过第一人称角色控制器实现移动,使用PortalView脚本和自定义Unlit Shader渲染门内场景,巧妙利用相机位置和旋转同步实现动态视角。重点解决了近裁剪面问题,确保远距离渲染正确性。最后通过PortalTeleporter脚本实现传送功能,检测碰撞并计算相对位置进行瞬移。该方法无需复杂插件,代码简洁高效,适用于各类3D场景中的传送门实现。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

Web渗/透/攻/击实战(1)—成功渗/透台湾某净化设备公司官网

写在前面 作为一个防御型白帽黑客​ 你一定要知道黑客的进攻套路 才能有相应的防御措施 声明:只做测试,发现对方的漏洞,并不进行破坏性操作 1、 网站分析 地址:http://www.xxx.com.tw/ 这是一家中国台湾地区的网站,看着满屏的繁体字,就不是很舒服 网站首页包括:关于我们、资料下载、联络方式等等。 这些对我们进行sql注入用处并不大 我们需要的是可以进行参数传入的页面,这样我们就可以在参数里做文章 找一下 有没有新闻列表相关的页面 页...

信息安全领域优质创作者|操作系统领域专家 1805

HoRain云--Electron性能优化终极指南

《Electron性能优化全面指南》针对Electron应用常见的性能痛点,系统性地提出了八大优化策略。文章从启动速度优化入手,建议延迟显示窗口和采用异步操作;在进程通信方面推荐异步消息队列和批量处理;渲染进程优化着重减少DOM节点和任务调度;内存管理强调定期清理和避免泄漏;资源加载提倡懒加载和预加载策略;架构优化建议减轻主进程负担;最后介绍了性能监控工具和关键指标。通过实施这些优化措施,可显著提升Electron应用的启动速度、降低内存占用并改善用户体验。文章强调性能优化是持续过程,需要在整个开发周期中不

2401_86544677的博客 862

华为OD机试 新系统真题 【数字系统转换器】

华为OD机试 新系统真题【数字系统转换器】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【数字系统转换器】多语言题解。

qq_45776114的博客 540

199 元找人定制 Codex 主题?未曾设想的赚钱道路。。我免费教你怎么做

Codex 定制主题皮肤保姆级教程,借助 GitHub 开源项目,根本不需要花钱!

努力做最接地气的编程干货分享,感谢关注 453

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Node.js中间层实现股票价格可靠显示与错误处理

股票价格显示看似简单,实则涉及HTTP通信、实时性保障、跨域限制、密钥安全与异常容错等核心前端工程问题。其本质是构建一个稳定、低延迟、可降级的数据代理服务,需兼顾API调用治理、内存缓存策略与前端渲染体验。关键技术包括中间层代理架构设计、基于node-cache的TTL缓存与熔断降级、Twelvedata等轻量API集成,以及带状态语义(涨跌色、时效提示)的渐进式数字渲染。本文聚焦于Node.js+Express轻量方案,解决浏览器直连导致的CORS、密钥泄露与请求失控等高频痛点,适用于金融监控看板、个人投

weixin_33881140的博客 359

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Selenium 和 Playwright两大框架的不同之处

Selenium 和 Playwright 是两种流行的自动化测试工具,它们都被用于浏览器自动化任务,如网页测试、抓取等。虽然它们的目标类似,但在底层逻辑、功能特性、执行方式等方面有很多不同之处。

人生不怕起点低,就怕没追求 1373

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python爬虫逆向|jadx用上AI辅助逆向分析并附带某宝抓包hook代码

开源工具Anything Analyzer凭借全场景流量捕获+AI自动分析功能迅速走红,支持网页、App、IoT等多场景HTTP/HTTPS/WebSocket抓包,并集成AI智能过滤、加密逆向(如AES/RSA/国密)、安全审计等功能,自动生成接口文档与协议分析报告。其MCP生态还能为AI助手提供网络分析能力,适合开发、安全及逆向工程师。 此外,配套的爬虫逆向实战课由竞赛大佬授课,涵盖AI模型调参、JS加密还原、滑块验证码破解等高阶技术,学员可获实战源码与变现指导,助力技术接单。课程福利包括Dee

五包辣条的博客 942

Electron开发使用Vue Devtools

转自 [https://orchidflower.oschina.io/2017/03/29/Using-Vue-Devtools-in-Electron/] 2.2 安装步骤 首先在Chrome中安装Vue Devtools; 在Chrome中打开about:extensions,并且开启开发者模式,这样就可以获取扩展程序的ID,记住这个ID,例如我这边的值是nhdogjmejiglipccpn...

weixin_30364147的博客 528

使用electron-devtools-installer增强你的Electron应用调试能力

使用electron-devtools-installer增强你的Electron应用调试能力 electron-devtools-installerAn easy way to ensure Chrome DevTools extensions into Electron项目地址:https://gitcode.com/gh_mirrors/el/electron-devtools-insta...

gitblog_00158的博客 1165

2025 Electron调试终极指南:从DevTools配置到性能优化全流程

当你在开发Electron应用时,是否遇到过这些问题:主进程日志不输出、渲染进程断点无效、DevTools无法自动打开?作为同时运行Node.js环境和Chromium浏览器的跨平台框架,Electron的调试体验常常让开发者头疼。本文将系统讲解DevTools的配置技巧、多进程调试策略和高级调试工具链,帮你彻底解决Electron调试难题。 读完本文你将掌握: - 3种DevTools自动打开...

gitblog_00296的博客 1317

electron+vue3全家桶+vite项目搭建【26】electron本地安装Vue Devtool插件,安装浏览器扩展

electron本地安装Vue Devtool插件,electron安装浏览器扩展

个人网站:https://www.longzipeng.online 2799

electron +vue3项目中添加vue-devtool插件

electron配置vue插件

九段刀客的博客 1859

Electron 配置 Vue Devtools

Electron + Vue3 + Vite + TypeScript,Vue Devtools官网配置方案因本人配置方式不对,测试无效,网上找了些资料,记录留存。

lijianfei1989的专栏 2862

为 Electron 安装 vue-devtools 扩展

在SPA逐渐成为构建优秀交互体验应用的主流方式后,使用 Electron开发跨平台的软件是一个优秀的解决方案。 下面简单介绍一下 Electron-vue 安装 vue-devtool的方式。 安装步骤 1、下载 vue-devtools.crx,把文件名后缀改成 zip后解压放在项目工程目录下 (找不到或者懒得下可以直接克隆我的仓库后,把这个文件夹给复制出来,我已经解...

grootbaby 2658

electron-devtools-installer 使用教程

`electron-devtools-installer` 是一个开源项目,旨在简化在 Electron 应用中安装 Chrome DevTools 扩展的过程。通过这个工具,开发者可以轻松地将 Chrome 扩展添加到他们的 Electron 应用中,从而提高开发效率和调试体验。 ## 项目快速启动 ### 安装 首先,你需要在你的项目中安装 `electron-devtools-inst

gitblog_00470的博客 854

Electron调试技巧:Chrome DevTools与VS Code集成

> 还在为Electron应用调试而烦恼?本文为你揭秘Chrome DevTools与VS Code的无缝集成调试方案,助你快速定位和修复跨进程问题! ## 调试痛点与解决方案全景图 Electron应用包含主进程(Main Process)和渲染进程(Renderer Process),传统调试方式往往面临以下挑战: ```mermaid mindmap root((Electron调...

gitblog_00006的博客 1229
上一篇: 干货 | 关于机器翻译,看这一篇就够了
下一篇: 干货 | 携程酒店iOS动态View的探索
携程技术
博客等级 码龄10年 3716粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值