尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

解决Elctron打包成功,IPC无法注册问题。

解决Elctron打包成功,IPC无法注册问题。
📅 发布时间:2026/6/20 3:43:55

目录
  • 解决Elctron打包成功,IPC无法注册问题。
  • 项目地址

解决Elctron打包成功,IPC无法注册问题。

核心问题原因

  1. IPC 处理程序未注册:主进程未注册 'resource:scanDirectory'通道的处理程序
  2. 注册时序问题:处理程序注册可能晚于渲染进程的 IPC 调用
  3. 模块加载失败:registerResourceIpcHandlers()函数未被正确导入或执行

核心代码

ipcRegister.js

// 静态导入,确保构建工具能识别
import { registerFileSystemIpcHandlers } from '../../ipcHandlers/fileSystemHandler.js'
import { registerResourceIpcHandlers } from '../../ipcHandlers/resourceHandler.js'const handlers = [{ name: 'FileSystem', register: registerFileSystemIpcHandlers },{ name: 'Resource', register: registerResourceIpcHandlers }
]export async function registerAllIpcHandlers() {for (const handler of handlers) {try {await handler.register()console.log(`✅ ${handler.name} IPC 处理程序注册成功`)} catch (error) {console.error(`🛑 注册 ${handler.name} 失败:`, error)throw new Error(`IPC 注册失败: ${handler.name} - ${error.message}`)}}console.log('🎉 所有 IPC 处理程序注册完成')
}

main/index.js

import { app } from 'electron'
import { electronApp, optimizer } from '@electron-toolkit/utils'
import { setupAppLifecycle } from './modules/appLifecycle.js'
import { registerAllIpcHandlers } from './modules/ipcRegister.js'
import { createWindow } from './modules/windowManager.js'// 当 Electron 完成初始化时触发
app.whenReady().then(async () => {// 1. 设置应用用户模型 ID (主要用于 Windows)electronApp.setAppUserModelId('com.electron')// 2. 设置窗口快捷键监听 (如 F12 开发者工具)app.on('browser-window-created', (_, window) => {optimizer.watchWindowShortcuts(window)})// 3. 注册所有 IPC 处理程序await registerAllIpcHandlers()// 4. 创建主浏览器窗口createWindow()// 5. 设置应用激活时的行为 (主要用于 macOS)setupAppLifecycle()
})// 当所有窗口都关闭时触发
app.on('window-all-closed', () => {// 在 macOS 上,应用程序和它们的菜单栏通常会保持活动状态,// 直到用户明确退出(Cmd+Q)。if (process.platform !== 'darwin') {app.quit()}
})

src/renderer/index.html

<!doctype html>
<html>
<head><meta charset="UTF-8"/><title>数据标注</title><!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP --><!--    <meta--><!--      http-equiv="Content-Security-Policy"--><!--      content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"--><!--    />-->
</head><body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

项目地址

electron本地连接mysql数据库项目模板,解决ipc注册问题、prismaclient加载问题

登峰造极的成就源于自律

相关新闻

  • 在Windows系统置顶窗口不被Win+D快捷键影响
  • 点分树
  • HTTP请求走私漏洞介绍 - 实践

最新新闻

  • Elastic 被评为 IDC MarketScape《2026 年全球 SIEM 厂商评估》领导者
  • 2026银川2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 字节跳动拟购5万颗AI芯片,国产GPU竞争聚焦生态、成本与产能
  • 基于深度学习的糖尿病视网膜病变自动检测系统构建实战
  • Obsidian MCL布局:模块化CSS让你的笔记排版焕然一新
  • 逆向工程实战:从加密音乐文件到通用音频格式的转换原理

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号