当前位置: 首页
AI教程
用Qoder重构图床插件从Fork到发布

用Qoder重构图床插件从Fork到发布

热心网友 时间:2026-07-06
转载
阿里云OSS图片上传VSCode插件重构:Spec驱动 + AI辅助开发实践

日常写博客较多,我经常需要在Markdown中直接粘贴图片并自动上传至阿里云OSS,获取返回链接。趁着有空,我搜索了相关工具,在插件市场中找到了一个名为aliyun oss upload image的现成插件,不过其代码已多年未更新,源代码仓库也已404无法访问……

2026-07-05-14-37-19

沿着fork链找到了一份残留代码,克隆到本地后,开始着手改造。

建立Wiki,梳理代码脉络

接手一份陈旧代码时,首要任务是彻底理解其逻辑架构、实现流程,并排查潜在问题。以下是我记录的主要问题:

  • 引入了不必要的依赖axiosshelljs,实际并未使用
  • expiration变量初始化为0且始终未更新,导致客户端的复用逻辑失效
  • 仅支持PNG格式,剪贴板脚本中的格式检测被写死为单一类型
  • package.json中仍残留原作者的邮箱信息和fork说明

这些潜在问题已被记录,后续交给AI Agent自行处理即可。

2026-07-05-14-48-45

采用Spec驱动模式,先制定方案再动手

启用spec模式,首先明确需求说明:

后续交给AI自主完成。经过几轮反馈确认,主要围绕方案中命令的删留进行讨论,确认后执行阶段便不再需要过多干预。

2026-07-05-14-50-16

改动范围不算大,但十分琐碎。它逐文件完成的工作包括:

  • 接管Cmd V/Ctrl V,智能区分图片和文本。有图片就上传OSS,否则回退到正常粘贴
  • 支持PNG/JPEG/GIF/WebP/TIFF格式,通过magic bytes检测实际格式,扩展名不匹配时自动重命名
  • Region格式自动补全。首次配置时填了cn-hangzhou,SDK报socket hang up,排查发现是用region直接拼URL的,补上oss-前缀后即正常
  • 移除了axiosshelljsmoment三个冗余依赖,moment用原生Date替代
  • 删除了原作者邮箱、个人域名和fork故事,overview.md直接删除
  • 代码从回调模式改为async/await,var改为const

避坑经验:Region格式问题

Region格式问题值得单独说明。

报错日志显示socket hang up,请求URL中的域名为public-files-dev.cn-hangzhou.aliyuncs.com,缺失了oss-前缀。经排查,原因是ali-oss SDK直接将region参数拼接进endpoint,未做任何预处理。当填入cn-hangzhou时,SDK会请求cn-hangzhou.aliyuncs.com,该域名无法处理OSS请求,导致连接中断。

解决方案:在upload.js中添加自动补全逻辑,若region不以oss-开头则自动补充前缀。同时,在extension.js中新增normalizeRegion()函数,确保域名替换时不会因region格式不一致而导致匹配失败。

一键配置OSS,简洁高效

需要一个公共读的OSS bucket及对应的AccessKey ID和AccessKey Secret。

为了省去手动配置的麻烦,我换用了一个skills命令,一句话即可完成:

2026-07-05-14-52-18

配置信息写入VSCode的settings.json文件。

打包发布

验证成功后进行打包。在执行npx vsce package时遇到了几个小问题:

  • 项目中包含yarn.lock,但我使用的是npm,vsce默认检测到yarn.lock会调用yarn,需要添加-no-yarn参数
  • repository字段缺失,而vsce要求必填,因此补充了GitHub仓库地址
  • 缺少LICENSE文件,使用printf 'y'管道命令自动确认

最终生成一个.vsix文件,通过code --install-extension即可安装。该包在macOS Apple Silicon上打包,README中已注明其他平台的自打包流程。

Vibe Coding经验分享

这次重构虽项目规模不大,但验证了一套适合AI辅助开发的完整流程:spec驱动 → goal开发 → 查漏补缺 → 审查上线。

在启动任何需求前,使用spec模式将需求描述清晰,让AI输出一份详细的方案说明,确保双方理解一致、边界明确,避免“边做边猜”。最好能像本文一样,将关键约束、支持格式、删除范围等明确写入需求中。

方案确认后,切换到goal模式开始执行。goal模式更适合拆解任务、逐步实现,过程中可穿插验证(如运行测试、手动检查关键路径),确保每一步符合预期。查漏补缺这一环节尤为重要,像Region补全、格式检测等细节,往往是自动生成容易遗漏的地方。

准备发布至生产环境前,再执行一轮代码审查(/ultra-review),让AI对最终改动进行全面审视,检查是否有未处理的边界情况、安全风险或残留的冗余代码。审查通过后,整个流程便形成了spec驱动 → goal开发 → 审查发布的闭环。

当然,工具能帮助你理清代码逻辑,但“为什么这样做”的判断仍需由人来完成。对于更大规模的项目或多轮迭代场景,建议补充Rules和Agents.md文件,使AI的决策更加稳定,同时提升这套流程的复用性。

参考

开发工具:Qoder 社区版 GLM-5.2
项目地址:https://github.com/felixzhang-glitch/vscode-aliyun-upload-image

来源:https://developer.aliyun.com/article/1745496

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
阿里云Qoder CN灵码AI助手免费版及credits计费指南

阿里云Qoder CN灵码AI助手免费版及credits计费指南

阿里云QoderCN(原通义灵码)是一款AI智能编码助手,提供IDE插件、独立IDE等形态,覆盖编码及日常办公场景。产品分个人社区版(免费)、个人专业版、企业标准版和企业VPC版,采用Credits计费模式,支持多种AI模型。

时间:2026-07-06 16:30
基于大模型的城市文旅知识图谱构建与内容分发

基于大模型的城市文旅知识图谱构建与内容分发

大模型构建城市知识图谱时优先采信权威信源。贵港西江传媒联合《度假旅游》杂志,通过本地采编、期刊发布、阿里云多平台分发模式,产出产业文旅等结构化内容,提升AI知识库收录权重,为城市品牌长效传播提供可复制路径。

时间:2026-07-06 16:30
贵州文旅AIGEO内容运营本地媒体落地实践

贵州文旅AIGEO内容运营本地媒体落地实践

针对贵州文旅行业在阿里云平台的内容运营痛点,总结合规发文规则,包括弱化营销、避免引流信息与极限词。以《度假旅游杂志》在贵阳设立本地化运营站点为例,为黔域文旅商家产出合规原创内容,提升AI平台收录权重。同时指出商家常踩的审核红线,强调以干货分享获取自然流量。

时间:2026-07-06 16:29
阿里内部禁用Claude Code OpenCode成替代方案

阿里内部禁用Claude Code OpenCode成替代方案

ClaudeCode对国内用户定向封禁,网传阿里内部已全面禁用。OpenCode作为开源替代,支持接入多种AI模型,通过CCSwitch或手动配置可无缝迁移原有MCP与AgentSkill,规避账号风险。

时间:2026-07-06 16:29
年实测Homebrew安装配置国内源多种安装方式一篇搞定

年实测Homebrew安装配置国内源多种安装方式一篇搞定

Homebrew是macOS上流行的包管理工具,提供pkg安装包、脚本安装和Git克隆等多种安装方式。国内用户推荐使用镜像脚本安装并配置中科大或清华大学镜像源以加速下载。常用命令包括brewinstall安装工具、brewinstall--cask安装图形应用、brewupdate更新及brewdoctor诊断环境。

时间:2026-07-06 16:29
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜