新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何写出稳如磐石的插件:DSH-better-sidebar的CI挂载冒烟、消费方类型守卫与npm发版流水线

发布时间:2026/9/26 10:20:36来源:尧图网络
如何写出稳如磐石的插件:DSH-better-sidebar的CI挂载冒烟、消费方类型守卫与npm发版流水线
如何写出稳如磐石的插件DSH-better-sidebar的CI挂载冒烟、消费方类型守卫与npm发版流水线【免费下载链接】DSH-better-sidebar开放的侧边栏底座支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.项目地址: https://gitcode.com/gh_mirrors/ds/DSH-better-sidebarDSH-better-sidebar是面向 DSH 的开放侧边栏底座内置文件渲染编辑、终端、侧边对话、Git、子代理页面并支持三方扩展通过ctx.betterSidebar注册新的侧边栏页面。插件的稳不只靠本地测试——本文拆解它如何用CI 挂载冒烟、消费方类型守卫与npm 发版流水线三道工程门禁保证打包产物挂载不崩溃、对外类型契约不腐化、发版可信可追溯。先搞清楚插件的稳到底稳在哪插件不是独立应用而是挂载在宿主DSH上运行的扩展。风险点集中在三处门禁守护什么关键文件️ CI 挂载冒烟npm 打包产物在真实 DSH 上挂载后不崩溃scripts/e2e-mount.sh️ 消费方类型守卫浏览器消费方能正确使用全部公开类型scripts/check-consumer-types.sh npm 发版流水线版本号、门禁顺序、来源溯源全部可信.github/workflows/release.yml本地pnpm test跑的是源码但用户装进 profile 的是 tarball——打包产物与源码之间隔着构建、依赖解析、宿主挂载三层鸿沟。DSH-better-sidebar 的底座能力如 Git 面板的仓库/分支选择就经受过这种真机验证门禁一CI 挂载冒烟——验证包而不是源码冒烟流水线 scripts/e2e-mount.sh 分三步全程模拟真实用户路径打包pnpm build pnpm pack产出与 npm 发布一致的 tarball真实挂载用官方 CLI 把 tarball 装进全新的一次性 scratch profile与用户dsh plugin add同一通道并校验挂载确实注册成功无头渲染启动真实dsh webPlaywright Chromium 打开页面——断言侧边栏外壳挂载、无错误条、无 pageerror再逐个打开内置 tab 类型含终端的懒加载 chunk经文件树打开 seed 文件强制加载编辑器 chunktests/e2e/mount.e2e.ts。几个值得抄的设计细节隔离scratch home 每次全新创建、trap 兜底清理绝不触碰真实~/.dsh️命名双保险e2e 用例统一命名*.e2e.tsvitest 侧再exclude一次防止单测误收整条浏览器链路确定性playwright.config.ts 设retries: 0、单 worker、单浏览器——冒烟就是崩溃探针重试会掩盖回归真机教训写进仓库规则钉版必须是已完整发布的版本、必要时加NODE_OPTIONS--max-old-space-size4096防 OOM、不要加--legacy-peer-deps它会跳过全局安装必须提供的 peerCLI 直接报模块缺失。这些踩坑-修复记录沉淀在 AGENTS.md 第 2 节后来者不用重复踩。门禁二消费方类型守卫——类型正确也是可测试的承诺插件对外暴露registerTab/registerFileViewer等注册 API28 生态插件都是类型消费方。我仓库里 tsc 通过不等于消费方也能用——常见问题是声明文件悄悄引入了types/node或只在本仓库依赖树里能解析。scripts/check-consumer-types.sh 的解法很直接构造一个最小浏览器消费方——无types/node、skipLibCheck: false——对构建出的lib/types做类型检查两遍跑法第一遍skipLibCheck: true模拟真实消费方体验必须完全干净第二遍skipLibCheck: false严格模式——仅当错误指向本包自己的声明面时才判失败上游依赖的存量噪音被过滤不放大误报。这样类型契约从口头约定变成了 CI 里的一条绿线任何让浏览器消费方编译失败的改动都会在 CI 校验作业 中被拦下校验顺序与发版流水线完全一致typecheck → lint → test → build → check:consumer-types。门禁三npm 发版流水线——零 token 的可信发布.github/workflows/release.yml 由 GitHub ReleasetagvX.Y.Z触发流程四步前置校验tag 必须与package.json版本精确匹配不匹配直接失败全套门禁install → typecheck → lint → test → build → 消费方类型守卫可信发布pnpm publish --provenance --access public——认证走npm Trusted PublishingOIDC仓库里没有任何NPM_TOKEN机密产物自带来源溯源dist-tag 分流版本号含-预发布发到alpha标签稳定版才发latest——稳定用户永远不会被预发布版污染。需要演练又不想真发workflow_dispatchdry_runtrue会走完全部打包与校验但跳过 publish排错成本几乎为零。稳定性清单你可以直接抄走✅ 冒烟测打包产物而非源码pack → 官方安装通道 → 真实宿主 → 无头渲染断言✅ 对外类型面单独设一道浏览器消费方类型检查门禁✅ 发版流水线强制 tag 与版本一致、门禁顺序与 CI 对齐、OIDC 免 token 发布、预发布走独立 dist-tag✅ 用make check一条命令聚合本地门禁Makefiletypecheck → lint → build → test → check:consumer-typesmake mount一键跑真机冒烟✅ 踩坑结论写进仓库规则文档而不是留在 CI 的红色日志里。想给这个底座写插件完整接入参考Tab / FileViewer 全字段、声明式设置、皮肤契约见官方文档 docs/external-plugin-guide.md仓库开发规则与 CI 说明见 AGENTS.md。【免费下载链接】DSH-better-sidebar开放的侧边栏底座支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.项目地址: https://gitcode.com/gh_mirrors/ds/DSH-better-sidebar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【Jetpack Compose娓娓道来】 第22课:Kotlin Multiplatform深入实践——从“共享UI“到“共享一切“ 2026/9/26 11:08:50

【Jetpack Compose娓娓道来】 第22课:Kotlin Multiplatform深入实践——从“共享UI“到“共享一切“

一、先讲一个真实的故事 我见过一个团队,用Compose Multiplatform把Android应用移植到了iOS。移植完成后,他们发现一个尴尬的事实:共享的代码只有UI层。 网络请求用的是平台各自的库——Android用Retrofit,iOS用Alamofire。数据库…

阅读更多 →
LeetCode:合并两个有序链表 2026/9/26 11:08:44

LeetCode:合并两个有序链表

题目:解题思路:1.建立一个虚拟头结点ListNode dummy,声明cur 是我们用来拼接链表的“指针尾巴”,并取空节点的指针地址赋值给cur;2.通过判断两个链表不为空,进行循环比较;3.通过循环比较两链表的值&#xf…

阅读更多 →
AUTOSAR CP通信栈基础:ComStack_Types核心类型解析与工程实践 2026/9/26 11:08:44

AUTOSAR CP通信栈基础:ComStack_Types核心类型解析与工程实践

1. 从一次编译报错说起:ComStack_Types到底管什么第一次接触AUTOSAR CP通信栈的人,十有八九会在某个时刻被一个看似莫名其妙的编译错误拦住。我印象很深的一次,是在集成一个CAN通信模块时,代码里引用了PduInfoType,头文…

阅读更多 →
代码直接变论文!MSRA同款Agent库开源,读Repo一键生成初稿:TaoToken统一Key接入配置与验证 2026/9/26 11:08:44

代码直接变论文!MSRA同款Agent库开源,读Repo一键生成初稿:TaoToken统一Key接入配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI-Agent科研全链路实战营:用TaoToken统一Key打通LLM+NotebookLM+N8N+Claude Code+Codex自动化编程与文献管理 2026/9/26 11:08:44

AI-Agent科研全链路实战营:用TaoToken统一Key打通LLM+NotebookLM+N8N+Claude Code+Codex自动化编程与文献管理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
FDE工程师:AI落地最后一公里,收藏这份小白程序员进阶指南 2026/9/26 11:08:37

FDE工程师:AI落地最后一公里,收藏这份小白程序员进阶指南

FDE(前沿部署工程师)是AI落地的关键角色,负责将AI技术嵌入客户现场并确保其有效运行。文章从FDE的概念、起源、市场空间、竞争格局、产业链和相关龙头等多个维度进行解析,强调FDE在AI产业中的重要性,并展望了FDE的未来…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉