项目搭建与开发|Cursor 图片压缩应用(Electron)

从零构建健壮的跨平台窗口系统:Electron实战与核心设计模式 在现代应用开发中,窗口(或视窗)作为承载用户界面的核心容器,其设计直接关系到应用的用户体验与工程可维护性。从概念上讲,窗口本质上是状态容器与渲染上下文的结合体,它管理着特定视图的数据与交互逻辑。其生命周期涵盖了初始化、显示、活动、调整大小到销毁等关键阶段,理解这些阶段是进行有效状态管理与资源调配的基础。在技术实现上,进程间通信(IPC)是连接主进程与渲染进程、实现安全数据交换的核心机制,而合理运用窗口管理器则能优雅地处理多窗口的创建、通信与销毁。这些技术共同支撑了从简单的工具软件到复杂的IDE等各类桌面、W 阅读详情

项目搭建与开发

Date: August 2, 2025


准备工作

Cursor版本:1.2.4

开启 Cursor 的自动运行模式(老版本叫 yolo),记得开启文件删除保护功能,并配置 Command

Denylist 用于控制删除命令。

原因:减少项目运行中的手动命令的配置,提升效率。但是实际工作中建议关闭,可能会自动修改些非必要的文件,导致问题。

image.png




项目构建

创建项目结构

根据需求分析、技术文档、UI设计文档进行开发:

@Analysis.md @Technical.md @/ui 
请根据以上文档,搭建项目结构和主要页面的布局。

生成项目目录如下:

.
├── Analysis.md
├── electron-builder.yml
├── package-lock.json
├── package.json
├── projectTree.md
├── README.md
├── src
│   ├── main
│   │   ├── fileManager.cjs
│   │   ├── imageProcessor.cjs
│   │   ├── main.cjs
│   │   └── preload.cjs
│   └── renderer
│       ├── index.html
│       └── src
├── structure.md
├── Technical.md
├── ui
│   ├── 历史记录-查看页面.md
│   ├── 批量处理-任务队列.md
│   ├── 设置-偏好配置.md
│   ├── 图片处理-对比视图.md
│   ├── 主页面-上传区.md
│   └── 主页面-图片列表.md
└── vite.config.js

6 directories, 20 files



启动项目

当然启动项目后会有问题,可以见后面。查看 package.json 可知启动命令如下:

npm run dev

正常启动后:

1)主页面:

image.png

2)图片上传列表页:

image.png

*)其他页面如之前所说一致

问题1: 项目启动页面不显示问题

项目已经正常启动,但是浏览器地址:http://localhost:5173/ 页面上显示“找不到 localhost 的网页”
请分析问题,并提供解决方案。

问题2: ImageList 组件问题修复

问题:

nathanchen@192 electron-zip % npm run dev

> electron-zip@1.0.0 dev
> vite

  VITE v4.5.2  ready in 130 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: http://192.168.10.103:5173/
  ➜  press h to show help
Error:   Failed to scan for dependencies from entries:
  /Users/nathanchen/Documents/1Front-End/AI-Prjs/electron-zip/src/renderer/index.html

  ✘ [ERROR] Unexpected end of file

    src/renderer/src/pages/ImageList.jsx:151:76504:
      151 │ ...kAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg

修复:

@ImageList.jsx 请修复该文件问题



基础功能研发

尽管 Cursor 生成的项目页面已经较为完全,但是经过测试来看,大部分功能无法正常使用。

所以,我们需要逐个比对 UI 设计图进行测试,打磨功能。

开发策略:

由于页面UI设计尚可,但是很多功能存在或多或少的问题,所以我们优先打通功能的主流程,也就是实现压缩图片即可,至于其他功能则放在之后进行打磨。

**开发技巧:**为每个功能模块单独建立窗口用于研发,避免长上下文的混淆



主页面

上传区

正常的功能:

  • 图片上传

问题功能:

  • 选择文件上传
  • 选择文件夹

image.png

问题修复:

1)

UpLoad组件中存在问题:
1)选择图片上传点击无法正常弹出系统文件夹
2)选择文件夹无法正常弹出系统文件夹
请分析问题,并提供解决方案。

原因:Antd v5 目前官方只支持 React 16-18,项目用的是 React 19


图片列表

将图片上传后显示的页面

选择图片后,点击开始压缩就会进入批量处理页面

image.png



批量处理

问题功能:

  • 任务进度无法正常加载

image.png

问题&修复:

问题:
当用户在点击“开始压缩”后,在batch页面中,图片压缩的任务进度一直为0。
请分析问题,并提供解决方案。

修复后:继续报错

chunk-BVI7NZOO.js?v=361503f6:16670 Uncaught TypeError: Cannot read properties of undefined (reading 'ipcRenderer')
    at Module.onCompressionProgress (electronService.js:82:26)
    at BatchProcess.jsx:50:41
chunk-BVI7NZOO.js?v=361503f6:16670 Uncaught TypeError: Cannot read properties of undefined (reading 'ipcRenderer')
    at Module.onCompressionProgress (electronService.js:82:26)
    at BatchProcess.jsx:50:41
2
hook.js:608 The above error occurred in the <BatchProcess> component:

成功修复:由于“当前不在Electron环境中,无法打开目录”,之后我们需要在PC端进行调试

image.png




核心功能研发

图像压缩对比功能

**目标:**实现图像压缩的前后对比。

功能说明:

- **对比视图**:提供原始图片和压缩后图片的对比展示
- **视图模式切换**:支持并排对比、滑动对比和放大镜对比三种模式
- **图片信息面板**:显示原始和压缩后图片的详细信息
  - 尺寸(分辨率)
  - 文件大小
  - 图片格式
  - 压缩率
- **操作按钮**:
  - 调整设置:快速返回压缩设置面板
  - 导出对比报告:生成当前图片的压缩前后对比报告
  - 返回列表:返回图片列表视图
  - 保存:保存当前压缩结果
- **导航控件**:在批量处理的图片之间切换

**目前问题:**图片压缩页面可以显示,但是功能存在多种问题:

  • 图片预览

image.png

image.png


问题分析&解决:

1)图片预览

@主页面-图片列表.md @ImageList.jsx 
当用户在list页面中,点击图片后,并没有显示图片预览。
请分析问题,并提供解决方案。

继续处理问题:

@ImageList.jsx 
当用户选择图片列表中的图片后,图片预览中无法正常显示图片。
浏览器报错如下:
1)
 GET safe-file://undefined net::ERR_UNKNOWN_URL_SCHEME
2)
图片加载失败 SyntheticBaseEvent {_reactName: 'onError', _targetInst: null, type: 'error', nativeEvent: Event, target: img.ant-image-img.css-dev-only-do-not-override-rkyzst, …}
3)
GET data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6
需求:
当用户选择图片列表中的图片后,图片预览中无法正常显示图片。
请分析问题,并提供解决方案。

继续处理问题:

@Upload.jsx 
结合上一问,
问题背景:当用户上传图片时,报错如下:
处理文件失败: Cannot read properties of undefined (reading 'ipcRenderer')
请分析问题,并提供解决方案。



经验总结

Cursor调试经验:

  • Cursor能够快速构建项目,但是项目技术栈的兼容可能在问题
  • 调试bug时,需要提供控制台与浏览器的日志信息
  • 复杂问题需要拆分成多个子问题逐个击破

技术方案选型:

**技术选型:**Antd v5 目前官方只支持 React 16-18

Vibe Coding全栈开发实战:Cursor与Claude Code从入门到部署 自然语言编程正在改变软件开发方式,开发者用需求描述替代手写代码,AI自动生成并迭代项目。Vibe Coding正是这种范式的实践,其核心原理是将需求描述、代码生成、运行验证与迭代修复串联成完整链路。Cursor作为AI原生IDE,提供图形化交互与多文件编辑能力;Claude Code作为命令行Agent,支持批量任务与自动化执行。两者组合能覆盖从脚手架搭建、接口对接到测试补充、部署上线的全栈开发流程。硬件门槛低,普通开发电脑即可运行,算力集中在云端模型。适用于独立开发者快速验证原型、全栈项目开发、代码重构与 阅读详情

相关推荐

AI编程工具选型实战:Claude Code、Cursor、Trae与OpenCode深度对比

AI编程助手已从‘代码补全插件’演进为具备推理、工作流编排、端到端生成和可审计中间件能力的新型开发范式。其核心差异不在模型参数或响应速度,而在于底层架构设计:大模型原生IDE强调长上下文与语义理解,Agent增强型工具依赖本地环境协同,Solo模式聚焦垂直场景闭环交付,开源中间件则以规则驱动实现安全合规落地。技术价值体现在对真实开发动线的适配能力——如紧急Bug修复需环境感知与自动验证,新项目启动依赖需求→架构→代码的端到端生成,现代化改造考验语言特性迁移精度,团队协作则要求规则可嵌入CI/CD并可审计。本

ctk87443的博客 472

应用打包|Cursor 图片压缩应用(Electron)

👋,我们通过 Vibe Coding 做一个PC端的图片压缩工具。

CaptainDrake的博客 492

Claude API vs Cursor深度对比:面向真实开发流的上下文韧性评测

在AI编程辅助工具选型中,'代码生成准确率'只是表象,真正决定长期生产力的是模型与IDE工作流的深度协同能力。本文从开发流(而非问答流)视角切入,解析上下文保鲜、错误恢复韧性、内联反馈延迟等工程级指标——这些正是影响TypeScript重构、跨文件依赖推导、Zustand状态迁移等高频场景的核心因素。结合AST解析器适配、三阶段提示工程、Redis上下文继承等实操方案,揭示Claude API如何通过可控上下文注入弥补远程调用短板,而Cursor又为何在中文标识符支持、本地模型热切换等环节暴露架构局限。适合

weixin_34074740的博客 467

动态上下文发现:Cursor的最新思路,优化AI上下文管理

Cursor发布《动态上下文发现》文章,提出优化AI上下文管理的新思路。传统做法往往将所有信息塞给模型,而Cursor提出"动态上下文发现"模式,让AI根据需要自行查找信息。文章介绍了五个优化技巧:将长输出转为文件、聊天历史存档、按需加载技能、MCP工具瘦身和终端会话文件化。这些方法都基于文件系统这一简单抽象,既节省token消耗,又提高AI灵活性。该思路与Manus的理念相似,都强调让AI主动获取所需信息而非被动接收全部内容。文章启示我们,随着AI进步,"少即是多"

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 1717

用Electron和大模型API打造AI桌宠:从透明窗口到Agent实战

桌面应用开发中,透明窗口与点击穿透是构建悬浮工具的核心技术,而大模型API的接入则赋予应用自然语言理解和多轮对话能力。借助Electron的BrowserWindow配置与IPC通信机制,开发者可以轻松实现无边框、置顶且可穿透的桌面角色,并让其在对话之外完成待办提醒、工具调用等任务。从概念到原理,从技术价值到应用场景,本文深入拆解AI桌宠背后的工程逻辑,带你掌握桌面端交互与大模型结合的关键方法。无论是前端入门者还是AI应用开发者,都能通过这一实践理解桌面悬浮应用从“看起来可爱”到“真正有用”的进阶路径,并为

weixin_30595035的博客 454

AI原生工作流实战:Cursor、Claude Code与Gemini CLI深度协同

AI原生工作流是指开发者将大模型能力深度集成进本地开发环境,通过CLI工具链实现可复现、可审计、可自动化的工程闭环。其核心原理在于打破传统‘人脑调度+网页交互’模式,转向‘模型即服务+stdin/stdout管道+Git-aware上下文’的Unix哲学实践。技术价值体现在智能密度提升、单兵交付效率跃升及错误率显著下降;典型应用场景包括自动化API文档生成、多模态UI代码转化、CI嵌入式代码校验等。本文聚焦cursor的agent工作流、claude code的skill结构化调用与gemini cli的百

weixin_33978044的博客 565

Cursor编辑器各种问题、报错与解决方案(仅供参考)

Cursor编辑器各种问题、报错与解决方案(仅供参考)

m0_75191457的博客 1万+

AiToEarn 项目实战:搭建 AI 内容营销智能体平台,吃透架构、打通商业变现 (上篇)

本文深度解析开源项目 AiToEarn —— 一个覆盖全球10+主流平台的 AI 内容营销智能体平台。从系统架构、技术栈选型(Next.js + MongoDB + Redis)、四大核心 Agent 模块到 Docker 部署、MCP 协议集成、内容变现实战,全链路拆解 技术内幕。提供从零上手的5种使用方式、平台授权流程、AI 视频图文批量生成、自动化互动运营及 CPS/CPE/CPM 三种结算模式详解,助力创作者实现内容全自动商业化闭环。

program哲学 699

基于RAG的企业智能客服项目,已拿70万offer!

基于 RAG 构建一套企业智能客服系统📖。

m0_59164520的博客 1444

7系列ZYNQ硬件调试:Vitis无法识别ARM DAP的排查与解决

本文详细分析了Xilinx 7系列ZYNQ芯片在Vitis开发环境中无法识别ARM DAP的常见问题及解决方案。从硬件设计检查(电源系统、时钟电路)、JTAG连接诊断到软件环境排查,提供了全面的调试指南。特别针对ARM DAP初始化失败的情况,给出了实用的排查步骤和预防措施,帮助开发者快速定位和解决类似问题。

weixin_33737134的博客 514

微信小程序 - 解决video视频播放黑屏只有声音没有画面问题,使用Video标签无法播放视频失败只有声音、黑屏视频播放不了,安卓手机/苹果ios视频只有声音却没有画面(uniapp微信小程序也适用)

微信小程序video有声音但是画面黑屏,uni-app微信小程序视频播放黑屏但是有音频,微信小程序video android真机或苹果ios系统中黑屏 只有声音没有画面,Uniapp微信小程序 Video MP4视频播放失败,只有声音,黑屏,视频播放不了,解决办法,解决小程序视频编码兼容性问题导致黑屏,出现黑屏但有声音的问题,video标签播放视频有声音,但是黑屏的原因及解决办法,mp4视频编码的问题,video标签播放视频有声音,但是黑屏。uniapp使用video标签无法播放视频出现黑屏问题处理,如何解

🏆 前端领域优质创作者 7777

5分钟搭建你的第一个Java AI智能体(Spring AI)

12345678910111213141516@ComponentpublicclassUserTools@Tool(description = "根据用户ID查询用户信息")publicUser// 实际项目中这里查数据库returnnewUser(userId,"张三"@Tool(description = "获取当前时间")publicString()returnrecordUser{}

HJS123456780的博客 1326

Open3D KD-tree的使用【2025最新版】

Open3d使用FLANN构建KDTree以便进行快速最近邻检索。博客长期更新,本文最近一次更新时间为:2025年1月1日,代码已同步更新至Open3D 0.18.0版本。

点云侠的博客 40万+

Cursor /summarize 与 Claude Code /compact

长工具输出 ──────►│ 写入本地文件 ││ 按需 read/grep▼上下文逼近上限 ──► Summarize ──► 摘要进入窗口│▼│ 聊天历史 → 文件 │◄── Agent 可 search 补全这体现了窗口内放索引与摘要,窗口外放可追溯的全量数据(与 MemEx、文件系统 scratchpad 等思路一致)。Cursor 的答案偏向摘要 + 文件化历史 + 动态发现;Claude Code 的答案偏向分层 prune + 磁盘记忆 + API 级 compaction 协议。

zhangyifang_009的博客 1752

深入解析 OpenClaw(小龙虾)源码:架构设计与核心实现

OpenClaw用清晰、工程化的代码结构,将复杂的Agent交互流程变成了可管理、可扩展的流水线。无论是想深入了解Agent系统设计,还是希望二次开发定制自己的AI助理,阅读OpenClaw源码都是一次绝佳的学习旅程。希望本文能帮助你快速掌握OpenClaw的核心脉络。如果你对某个模块(如技能开发、安全机制)感兴趣,欢迎继续探讨。本文基于OpenClaw社区版本源码分析,具体实现可能随版本迭代有所调整,请以最新源码为准。

Ven%的博客 449

主成分分析(Principal Component Analysis,PCA)

主成分分析1.主成分分析1.1 降维(Dimensionality Reduction)1.2 均值(Mean)1.3 方差(Variance)1.4 协方差(Covariance)1.5 协方差矩阵(Covariance Matrix)1.6 线性变换(Linear Transformation)1.7 主成分分析(PCA)1.8 PCA和SVD的关系 1.主成分分析 关于PCA的介绍:用最直观的方式告诉你:什么是主成分分析PCA 笔记来源:Principal Component Analysis (PC

一个搬运知识的笨小孩 3229

项目搭建与开发|用 Cursor 打造 Electron 图片压缩应用:TaoToken 统一 Key 接入实战

用 Cursor 开发 Electron 图片压缩应用时,把 Base URL 指向 TaoToken 即可统一管理模型 Key。本文从 package.json 与 vite.config.js 配置讲起,覆盖 React、Antd 与 sharp 压缩流程,并排查 401、ipcRenderer undefined 等常见报错。详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_35752233的博客 9

YOLO26涨点改进 | 细节涨点篇 | 源自SCI一区 | YOLO26引入HWD小波下采样模块,而不会显著增加计算开销,(适合小目标分割任务、小目标检测任务)

本文提出了一种基于Haar小波变换的下采样模块HWD,用于改进YOLO26目标检测性能。HWD模块通过小波变换降低特征图分辨率,同时将空间信息编码到通道维度,有效保留了关键信息。相比传统下采样方法,HWD能显著减少信息不确定性,提升小目标检测精度。实验表明,该模块可无缝集成到CNN架构中,不增加计算开销。文章详细介绍了HWD的实现原理、代码结构以及在YOLO26中的集成方法,并提供了两种改进版yaml配置文件。该创新模块已在多种数据集上验证有效,特别适合语义分割和目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 401

项目构想|Cursor 图片压缩应用(Electron)

👋,我们通过 Vibe Coding 做一个PC端的图片压缩工具。

CaptainDrake的博客 1217

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

项目构想|用 Cursor 打造 Electron 图片压缩应用:从 React+Vite 到 Node 压缩管线

用 Cursor 辅助搭建 Electron 图片压缩应用,从 React+Vite 渲染层到 Node+Sharp 压缩管线,含目录结构、依赖清单、IPC 通道与 electron-builder 打包配置。文中给出可复制代码片段,并说明 TaoToken 作为开发阶段模型对话入口,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 可接入 Coding Plan 辅助生成配置与排查报错。

weixin_42515842的博客 212

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Cursor 配 TaoToken:Electron 图片压缩应用里 ImageList.jsx 报错排查

Cursor 开发 Electron 图片压缩应用时,ImageList.jsx 出现 Unexpected end of file 和 safe-file://undefined。排查方式是先打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 API Key,在 Cursor 模型设置填入兼容通道 Base URL,再让 Cursor 按 npm run dev 日志重写被截断的 ImageList.jsx,并补全 preload.c

weixin_35949153的博客 126

计算机控制技术及应用

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

awesome-design-md 完整指南:给 AI 编码代理一份 DESIGN.md,还原 73 个品牌级 UI

awesome-design-md 把 73 个知名品牌官网的视觉语言,逐一整理成 DESIGN.md 格式的纯文本设计文档。选定一份放进项目根目录,AI 编码代理就能产出配色、字号层级与组件细节均贴近目标品牌的页面,无需反复手写长提示词。 ## 结果先行:复制一份 DESIGN.md 能生成什么 先看产出,再谈机制。把 [design-md/claude/DESIGN.md](https:/

gitblog_01102的博客 848

一份 DESIGN.md 让 AI 生成品牌级一致 UI:awesome-design-md 快速上手

让 AI 代理做个落地页,它总能交活,但成品永远像同一套模板:差不多的蓝灰配色、差不多的圆角卡片。把品牌色喊进 prompt 也只管得住一个变量,字号层级、组件状态这些细节,一句话说不完。[awesome-design-md](https://link.gitcode.com/i/cf33315f349b07e269d47d51cda361f0) 把 84 个知名品牌的官网设计系统,逐一拆成了可直

gitblog_01055的博客 382
上一篇: 项目构想|Cursor 图片压缩应用(Electron)
下一篇: 应用打包|Cursor 图片压缩应用(Electron)
CaptainDrake
博客等级 码龄6年 5363粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值