自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(55)
  • 收藏
  • 关注

原创 Systeminformation.js:为什么不试试最强的系统信息获取工具?

在现代开发环境中,跨平台获取系统信息已经成为许多应用程序的重要需求。无论你是在开发需要详细系统信息的应用,还是需要获取硬件和软件的状态信息,一个强大且灵活的工具库可以显著提升你的开发效率。今天,我们要分享的是这个 Node.js 库,可以帮你轻松获取到你想要的各种系统信息。systeminformation 是一个轻量级的 Node.js 库,旨在提供跨平台的系统信息获取功能。无论是在 Windows、macOS 还是 Linux 上,它都能为你提供一致的接口,获取系统的硬件和软件信息。

2025-01-03 10:02:46 951

原创 React DnD:实现拖拽功能的终极方案?

在开发现代 web 应用时,实现复杂的拖拽交互已成为提升用户体验的关键因素。无论是构建类似 Trello 的看板应用,还是需要在应用不同部分之间传输数据的场景,一个灵活且强大的拖拽工具可以大大提高开发效率和用户体验。今天,我们要分享的是React DnD这个功能丰富的 React 库,它可以帮助你轻松创建复杂的拖拽界面。React DnD 是一套 React 实用工具,旨在帮助开发者构建复杂的拖拽界面,同时保持组件的解耦。

2025-01-03 10:01:52 606

原创 iconv-lite:一个库搞定所有字符编码问题?

在全球化的开发环境中,处理不同字符编码已成为许多应用程序的关键需求。无论你是在开发需要支持多语言的应用,还是需要处理来自不同源的文本数据,一个高效且可靠的字符编码转换工具可以大大提升你的开发效率。今天,我们要介绍的是 iconv-lite 这个纯 JavaScript 实现的字符编码转换库,它能帮你轻松处理各种字符编码转换问题,特别是中文字符编码问题,用它准好使!iconv-lite是一个轻量级的纯JavaScript实现的字符编码转换库。它提供了一个简单而强大的接口,用于在不同字符编码之间进行转换。

2024-12-31 13:38:34 649

原创 Log4js:你的 Node.js 应用日志管理还停留在console.log 阶段吗?

在现代软件开发中,日志记录已经成为应用程序不可或缺的一部分。无论是调试问题、监控性能,还是追踪用户行为,一个功能完善的日志系统都能大大提高开发和维护效率。今天,我们要介绍的是 log4js 这个 Node.js 库,它可以帮你轻松实现强大而灵活的日志管理。log4js 是一个功能丰富的 Node.js 日志管理库,inspired by Java 中著名的 log4j 项目。自2010年首次发布以来,log4js 已经成为 Node.js 生态系统中最受欢迎的日志解决方案之一。

2024-12-31 13:37:29 738

原创 Electron 原生模块开发 & 调用实践指南

在 Electron 应用开发的过程中,开发者常常会遇到一些标准 Node 环境 和 Electron API 无法直接解决的特殊场景。这些场景可能涉及系统底层交互、高性能计算、特定硬件接口访问等复杂需求。为了突破这些限制,开发者需要借助原生模块——即.dll.dylib.so或.node文件——来扩展应用的功能边界。原生模块为 Electron 应用提供了强大的扩展能力,使开发者能够:1. 突破 JavaScript 的性能瓶颈,通过使用 C/C++、Rust 等高性能语言编写核心功能模块。

2024-12-30 10:05:03 1653

原创 Electron 任务队列管理实践指南

我相信很多小伙伴都会在 Electron 中 或者 Node 应用中遇到定时任务之类的功能,如果定时任务比较简单,数量比较少的话,随处定义就能解决了,但是如果遇到定时任务非常多,任务中执行的方法并不简单的话,简单的随处定义已经不能满足复杂的需求了,这个时候我们可能就需要考虑使用任务队列来管理整个应用的定时任务了。在日常的开发中,有很多场景可能都需要用到任务队列,上面任务队列的实现思路也不一定只适用于客户端,服务端设计大致的思路也差不多。

2024-12-30 10:04:05 859

原创 Electron 本地数据库实践指南(下)— 集成SQLite

上一节我们比较了三种数据库,我个人认为 SQLite3 这个数据库工具适用的范围最广,也相对稳定,所以我们这一节就专门讲如何在 Electron 中集成 SQLite3,如果大家有其他想要的案例,可以在评论区留言。话不多说,我们进入正题。在本节中,我们深入探讨了如何在 Electron 项目中集成 SQLite3 数据库。通过安装相关工具和依赖包,并配置好环境,我们为后续的数据库操作奠定了基础。我们可以在此基础上实现更多功能,例如事务处理、性能优化等,进一步增强应用的功能。

2024-12-26 10:17:23 1633

原创 Electron 本地数据库实践指南(上)

数据本地持久化是大多数客户端都会使用到的技术,根据业务场景的不同,可能是存储一些简单的系统配置,也可能是复杂的业务数据,我们在使用一些数据本地持久化工具的时候也是需要根据自己的应用场景来选择适合自己的工具。常规情况就会引入一个本地数据库来支撑这种数据本地持久化的需求,下面我们来看看如何在 Electron 应用中如何选择一些常规的数据库工具吧。工具名称SQLite3LowdbDexie轻量级是是是跨平台是是是SQL 支持是否否事务支持是否是并发支持有限有限是性能中高中低高。

2024-12-26 10:16:22 1208

原创 Electron 窗口池管理实践指南

在 Electron 应用中,我们经常会遇到新窗口打开显示缓慢的问题,大多数解决方案是先把要打开的窗口先隐藏起来,然后在需要打开的时候再展示出来,不得不说这个是一个简单高效的方法。但是这样会面临两个问题,第一个问题是如果用户不打开新窗口,那么就会有多余的进程消耗 CPU 和 内存;第二个问题是窗口只有显示和隐藏,所有隐藏窗口的状态不会按需得到初始化和销毁(当然可以通过事件监听或者主进程发送消息的方式,这样负担有点重),基于上面的场景和问题便有了窗口池的概念。

2024-12-25 10:03:00 981

原创 Electron 应用接入本地日志功能指南

在我们的日常开发 Electron 应用的过程中,肯定会遇到如何打印日志的问题,不可能全部都使用的方法去打印日志,主要是无法把日志存入文件中,到后面如果要分析客户端的日志是非常不好下手的。另外就是要开发一款完整的客户端应用,我觉得在开发环境搭建好了情况下,我们就应该在第一步接入日志功能,一个好的日志功能可以帮你分析和定位一些表象无法找到的问题,帮助你快速解决问题。那么下面我们就来看看 Electron 如何实现一个好用的日志功能吧。

2024-12-25 10:01:52 1794

原创 Electron 进程间通信原理与实践指南

在开发 Electron 项目的时候我们会经常遇到进程间通信的场景,进程间通信也是传统桌面端开发中非常常见的场景,我们在这里不仅仅是讲如何使用 IPC,我们更多的是通过源码去了解 IPC 底层的实现,然后通过了解原理去更好的解决我们在实际场景中可能会遇到的一些问题以及一些注意事项。通过探讨 Electron 的 IPC 机制,我们不仅掌握了其使用方法,更重要的是通过源码分析理解了其底层实现原理,理解原理让我们能够在遇到问题时快速定位根源,在设计方案时有更多的选择空间,在优化性能时知道突破口在哪里。

2024-12-24 10:41:47 1255

原创 Electron 进程模型全解析

本文首发同名微信公众号:前端徐徐大家好,我是徐徐,今天我们来探讨一下 Electron 的进程架构设计。前言随着跨平台桌面应用开发需求的增长,基于 Web 技术的桌面应用框架日益受到欢迎。Electron 作为其中的佼佼者,通过将 Chromium 和 Node.js 的优势相结合,为开发者提供了一个强大而灵活的开发平台。理解 Electron 的进程模型对于构建高性能、安全可靠的桌面应用至关重要。本文将探讨 Electron 的进程架构设计,包括主进程、渲染进程以及它们之间的通信机

2024-12-24 10:39:50 795

原创 使用 Vite 搭建 Electron 项目开发环境

最近准备重写 Electron 相关的实战教程,一年前在掘金上写过相关的文章,现在看来都太过粗糙,大部分东西都是为了记录写下的,并没有系统整理过相关的内容,自己一直在工作中做 Electron 相关的开发,最近又有了一些新的感悟以及相关的实践总结,所以决定从各个方面去写一下相关的实战教程,打算每一篇文章都把自己的思路讲明白,然后附上相应的源码。这一篇文章是讲如何用使用 Vite 搭建 Electron 项目开发环境。

2024-12-19 09:54:37 1565

原创 Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater

在 Electron 中 Windows 应用的更新原理其实并不复杂,他巧妙的结合了 NSIS,专门为基于 NSIS (Nullsoft Scriptable Install System) 的 Windows 应用程序设计了相应的更新器,下面我们来详细看看具体是如何实现的吧。初始化: 通过构造函数设置更新器。检查更新: (不在这段代码中,但是更新流程的一部分)。下载更新: 使用方法下载更新文件。可能使用差异下载 () 来优化下载过程。验证更新: 使用方法验证下载的文件。

2024-12-19 09:52:39 885

原创 Electron 重大更新,33.0.0版本发布,带来多项新特性与改进!

各位开发者朋友们,备受瞩目的Electron 33.0.0版本已于近日正式发布!Electron 33.0.0版本的发布标志着这个流行的跨平台开发框架又向前迈进了一大步。无论是核心组件的升级,还是新增的功能和改进,都将为开发者提供更强大、更灵活的工具来创建高质量的桌面应用。各位开发者,你们准备好升级到Electron 33了吗?欢迎在评论区分享你的看法和使用体验!

2024-12-18 09:57:12 560

原创 Electron on macOS: 揭秘 MacUpdater 如何实现无缝自动更新?

前面分析了 electron-updater 的整体流程,但是那是针对所有平台的流程,其实在各个平台的更新流程里面还有很多细节是需要探索的,这篇文章主要是探讨 Electron 在 macOS 平台上的更新流程,让我们一起来解读解读。MacUpdater类继承自AppUpdater,专门用于处理macOS平台的更新。它利用Electron的原生模块,并结合自定义的HTTP服务器来实现更新过程。macOS 特定更新管理与 Electron 原生更新器的集成更新检测和下载代理服务器管理。

2024-12-18 09:55:49 1244

原创 你真的了解 Electron 的自动更新吗?揭秘AppUpdater 类的内部工作原理

Electron 应用的自动更新是保持应用程序最新、修复 bug 和添加新功能的重要机制。本文将深入分析 electron-builder 的 AppUpdater 类的源码,梳理出完整的更新流程,以帮助开发者更好地理解和使用 Electron 的自动更新功能,相信读了这篇文章你会对 Electron 更新中的一些奇奇怪怪的问题会有一些眉目。通过对 AppUpdater 类的深入分析,我们可以看到 Electron 的自动更新机制是一个复杂而完善的系统。

2024-12-18 09:54:47 868

原创 揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?

electron-builder 是一个强大的工具,用于将 Electron 应用程序打包成可分发的格式。它支持多种平台,包括 Windows、macOS 和 Linux。在 Linux 平台上,electron-builder 支持多种打包格式,如 AppImage、Flatpak、Snap 等。本文将详细介绍 electron-builder 在 Linux 上的打包原理及各格式是如何打包的。通过以上的分析,我们深入了解了在 Linux 平台上的打包流程。

2024-12-17 11:56:38 1154

原创 Electron-builder 是如何打包 Windows 应用的?

electron-builder 中 windows 的打包其实也是很复杂的,因为光是使用这个工具去打包就会遇到很多问题,更别说去探究里面的源码了解其原理了。但是之前已经写了 electron-builder 中 macOS 的源码和原理解读,然后为了彻底了解所有平台的打包逻辑,我又开始阅读 windows 的构建源码,这里跟大家分享一下我的一些理解。通过和// ...设置各种定义// ...设置通用定义这些定义控制了 NSIS 脚本的行为,如安装目录、快捷方式创建等。

2024-12-17 11:55:37 1231

原创 揭秘 electron-builder:macOS 应用打包背后到底发生了什么?

我在后台收到留言说上一篇关于 electron-builder 解析的文章不够有深度,我就想了一下,要再细致一点就只能把每个平台的打包源码讲一下啰。这促使我重新审视了这个话题,决定深入源码,为大家揭示 macOS 平台上 Electron 应用打包的全过程。Electron 应用的 macOS 平台打包是一个涉及多个步骤的复杂过程,包括准备打包配置、执行打包、应用签名、notarization 等。定义 macOS 平台的默认打包目标,如dmgzippkg等。

2024-12-17 11:54:35 1186

原创 electron-builder 解析:你了解其背后的构建原理吗?

我们前面浅析了 Electron 的相关原理,这一节我们来讲讲 electron-builder 的原理。为什么要讲它呢,因为它的原理基本上包含了业界跨端的桌面端开发框架的打包构建原理,搞懂了这款工具的原理,其他的类似的跨端开发框架的构建思路都差不多,比如 NW.js 之类的,都差不多。而且它在构建 electron 应用这一块是非常成熟和优秀的,如果你想无痛构建 electron 应用,它是首选。下面我们就来看看它的整体原理与构建流程。

2024-12-16 10:12:12 1237

原创 十年跨平台开发,Electron 凭什么占据一席之地?

其实一直想系统的写一写 Electron 相关的文章,之前在掘金上写过,但是现在来看那些文章都写得挺粗糙的,所以现在我决定系统整理相关的知识,输出自己更多 Electron 开发相关的经验。这一节我们主要是来认识一下 Electron,这个已经有 10 年历史的跨端开发框架。我将从诞生背景,优劣势,生态,案例以及和其他框架的对比这几个方面带大家来认识 Electron。

2024-12-16 10:10:46 1516

原创 从架构到API,你真的掌握了Electron的全貌吗?

Electron 的原理是每个开发 Electron 应用的开发者都需要了解的知识内容,因为知道整个原理全貌后你才能在设计一个应用的时候更加的合理,遇到问题才知道从哪个方面去分析。这篇文章将主要从架构层面,协作方式,底层支持,源码层面,API设计等方面来剖析 Electron 的原理。

2024-12-16 10:09:12 1499

原创 electron-log:想让应用调试不再头疼?

在开发 Electron 应用时,一个可靠的日志记录系统至关重要。它不仅能帮助我们追踪应用运行状态,还能在调试和故障排查时提供宝贵的信息。今天,我们要介绍的是,这是一个专为 Electron 应用设计的简单而强大的日志记录模块。electron-log 是一个简单易用的日志记录模块,专为 Electron、Node.js 和 NW.js 应用设计。它没有复杂的配置,也不依赖任何外部库,可以轻松集成到你的项目中。electron-log 默认将日志写入特定位置,确保你能方便地查看和管理应用日志。

2024-12-02 09:55:23 974

原创 Lowdb:如何在 Node.js 中轻松实现高效的数据管理?

在许多 Node.js 项目中,我们经常需要一个轻量级的数据存储解决方案。无论是为桌面客户端应用存储,还是为小型后端项目提供数据持久化,选择一个简单而高效的本地数据库都很重要。今天要介绍的 lowdb 就是这样一个优秀的选择,它能满足多种本地数据存储需求。lowdb 是一个轻量级的 JSON 数据库,专为 Node.js 环境设计。它使用简单的 JSON 文件作为数据存储,提供了一个方便的 API 来读写数据。

2024-12-02 09:54:34 937

原创 node-downloader-helper: 追求高效的Node.js文件下载? 这个零依赖库会成为你的新宠!

在现代 Node 开发中,文件下载功能已经成为许多应用程序的基本需求。无论是构建文件管理系统、数据备份工具,还是需要处理远程资源的应用,一个可靠且功能丰富的下载库都能大大提升开发效率。今天,我们要介绍的是node-downloader-helper 这个 Node.js 库,它可以帮你轻松实现各种文件下载需求。node-downloader-helper 是一个轻量级的 Node.js 文件下载库,旨在提供简单而强大的 HTTP 文件下载功能。

2024-12-02 09:53:37 786

原创 Reveal.js:网页里面的PPT神器

在现代演示文稿制作中,创建引人入胜的动态幻灯片变得越来越重要。Reveal.js 是一个基于 HTML 的演示框架,能够帮助用户轻松创建美观且具有互动性的演示文稿。本文将介绍 Reveal.js 的基本信息、主要特点、使用场景以及快速上手的方法。Reveal.js 是一个开源的 HTML 演示框架,由 Hakim El Hattab 开发。它利用 HTML、CSS 和 JavaScript 创建幻灯片,支持丰富的动画和过渡效果。

2024-11-29 17:31:09 1323

原创 Video.js:视频播放的全能解决方案

在现代网页开发中,视频播放功能已经成为用户体验的一个重要组成部分。无论你是开发一个视频分享平台还是一个简单的博客,选择合适的视频播放器都至关重要。今天,我们要介绍的Video.js是一个强大且灵活的 HTML5 视频播放器,它能够满足你对视频播放的所有需求。Video.js是一个从零开始为 HTML5 世界打造的网页视频播放器。它不仅支持 HTML5 视频和现代流媒体格式,还支持 YouTube 和 Vimeo。自2010年中期项目启动以来,Video.js已经发展成为一个拥有数百名贡献者并广泛应用于超过。

2024-11-29 17:30:21 1044

原创 Anime.js:前端动画的魔法师

在现代网页开发中,动画效果已经成为提升用户体验的一个重要手段。无论你是开发一个炫酷的网页,还是一个交互丰富的应用,选择合适的动画库都至关重要。今天,我们要介绍的 Anime.js 是一个灵活且强大的动画库,它能够满足你对动画效果的各种需求。Anime.js 是一个轻量级的 JavaScript 动画库,它能够为 CSS 属性、SVG、DOM 属性和 JavaScript 对象创建动画效果。自2016年发布以来,Anime.js 已经成为许多前端开发者的首选动画库,广泛应用于各种网页和应用中。

2024-11-29 17:29:30 769

原创 sudo-prompt:你还在为跨平台特权命令执行而烦恼吗?

在现代开发环境中,跨平台执行特权命令已经成为许多应用程序的重要需求。无论你是在开发需要详细系统访问权限的应用,还是需要执行需要提升权限的任务,一个强大且灵活的工具可以显著提升你的开发效率。今天,我们要分享的是 sudo-prompt 这个 Node.js 库,它可以帮你在各种操作系统上轻松执行特权命令。sudo-prompt 是一个轻量级的 Node.js 库,旨在提供跨平台的特权命令执行功能。无论是在 Windows、macOS还是 Linux 上,它都能为你提供一致的接口,执行需要提升权限的命令。

2024-11-29 17:28:20 848

原创 Koffi: 让 Node.js 与 C 语言无缝对接的秘密武器?

在 Node.js 开发中,有时我们需要调用 C 语言编写的原生库来提高性能或访问底层系统功能。这就需要一个高效、易用的 C FFI (Foreign Function Interface) 模块。今天要介绍的 Koffi 就是这样一个优秀的选择,它提供了低开销、高性能的 C 语言调用能力,大大简化了 Node.js 与 C 语言库的集成过程。Koffi 是一个快速、易用的 Node.js C FFI 模块。

2024-11-29 17:26:12 1780

原创 node-applescript: 在 Node.js 中执行 AppleScript,还能更简单吗?

在 macOS 开发中,AppleScript 是与系统和应用程序交互的强大工具。但如何在 Node.js 环境中方便地执行 AppleScript 呢?node-applescript 库为我们提供了简单优雅的解决方案。无论你是需要控制 iTunes、自动化系统任务,还是与其他 macOS 应用交互,node-applescript 都能大大提升你的开发效率。node-applescript 是一个轻量级的 Node.js 库,为开发者提供了在 Node.js 中执行 AppleScript 的高级接口。

2024-11-29 17:00:29 748

原创 Tauri应用开发实践指南(8)— Tauri 日志记录功能开发

Tauri 应用程序配置日志记录是一个简单的过程,可以极大地提升开发体验。通过使用 log 和 tauri-plugin-log,可以轻松地将日志记录集成到您的 Rust 和 JavaScript 代码中,日志记录在客户端的开发中是必不可少的,有一个规范的日志记录能力可以提高整个程序的稳定性。

2024-09-06 11:21:40 1683

原创 Tauri应用开发实践指南(7)— Tauri 自定义多语言菜单开发

通过以上步骤,我们成功地在 Tauri 应用中实现了自定义菜单,并支持多语言切换。这种方法不仅提高了应用的可用性,还增强了其国际化能力。使用 Tauri 提供的 API 构建菜单结构实现简单的翻译器以支持多语言在菜单创建过程中应用翻译处理菜单事件以响应用户操作自定义菜单为 Tauri 应用提供了更大的灵活性,允许开发者创建与应用紧密集成、符合用户需求的界面。通过添加多语言支持,我们进一步提升了应用的全球适用性。在实际开发中,您可能需要根据具体需求进行更复杂的菜单设计和事件处理。

2024-09-06 11:20:07 1428

原创 Tauri应用开发实践指南(6)— Tauri 主题&多语言设置开发

通过以上的详细介绍,我们了解了如何在Tauri应用中实现窗口主题和多语言设置。从静态和动态主题设置,到多语言支持的实现,这些内容涵盖了Tauri开发过程中的多个重要方面。实现好的主题和语言支持不仅能够提升用户体验,还能扩大应用的受众群体。在实际开发中,可能还需要根据具体项目的需求进行调整和优化。希望本文能为你的Tauri应用开发提供有价值的参考和启发!如果你在实现过程中遇到任何问题,欢迎进一步讨论和交流。祝你开发顺利!

2024-09-05 10:08:32 865

原创 Tauri应用开发实践指南(5)—Tauri 集成本地数据库

Tauri 是一个构建跨平台桌面应用程序的框架,利用 Web 技术构建前端,并使用 Rust 构建后端。它以其小巧的体积和高性能受到开发者的欢迎。在开发过程中,我们常常需要数据本地持久化, 所以会需要与本地数据库进行交互。通过以上步骤,我们在 Tauri 应用中成功集成了 tauri-plugin-sql-api 插件,实现了与本地 SQLite 数据库的交互。

2024-09-05 10:07:14 2040 1

原创 Tauri应用开发实践指南(4)— Tauri 原生能力

Tauri 是一个用于构建安全的小型桌面应用程序的框架,它结合了 Web 前端和系统后端技术。文件系统访问Tauri 允许你的 Web 应用程序读取、写入和监视本地文件系统中的文件和目录。这对于处理用户文档、保存应用程序数据等场景非常有用。系统托盘Tauri 支持在系统托盘区显示应用程序图标,并提供自定义的上下文菜单,让您可以构建类似于本机桌面应用程序的用户体验。本地消息通知您可以使用 Tauri 在桌面系统上显示本地通知,让用户获得关于应用程序状态或重要事件的反馈。剪贴板访问。

2024-09-04 22:56:50 1710

原创 Tauri应用开发实践指南(3)— Tauri 配置介绍

平台特定配置 除了默认配置文件外,Tauri还可以从tauri.linux.conf.json、tauri.windows.conf.json和tauri.macos.conf.json(或者如果使用Tauri.toml格式,则为Tauri.linux.toml、Tauri.windows.toml和Tauri.macos.toml)读取平台特定配置,该配置将与主配置对象合并。这里主要是讲解一下 package.json 、Cargo.toml、tauri.conf.json这三个文件的配置。

2024-09-04 22:54:02 2060

原创 Tauri应用开发实践指南(2)— Tauri 工程搭建

本文首发于微信公众号:前端徐徐。欢迎关注,获取更多前端技能分享。⚠️__注意:此工程搭建,演示环境为macOS。

2024-09-03 22:10:35 975

原创 Tauri应用开发实践指南(1)— Tauri 怎么样

本文首发于微信公众号:前端徐徐。欢迎关注,获取更多前端技能分享。

2024-09-03 22:08:38 2025 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除