本地开发与调试
写 Workshop 内容时,保存 → check → 看报告 → 修 会占大部分时间。本页讲怎么把 SDK 当成日常开发工具。索引 → 创意工坊 SDK。
- 开一个终端在项目目录:
cd .\my-project - 另开终端跑监听(可选):
npm run watch - 改
content/或src/里的文件并保存 npm run check— 看结尾 Gate 一行和上面的报错- 需要预览:
npm run dev,浏览器打开控制台给出的地址 - 卡住了:
npm run next看待办和还能加什么
# 等价命令(不在生成项目里时)node ..\echo-workshop-sdk\bin\echo-workshop-sdk.mjs watch .node ..\echo-workshop-sdk\bin\echo-workshop-sdk.mjs check . --json > gate.jsoncheck 里到底跑了什么
Section titled “check 里到底跑了什么”一次 check 按顺序做:
| 阶段 | 作用 |
|---|---|
| sync | 把 src/ 打进 community.echo,重算 echo.workshop.json 哈希 |
| validate | Schema、跨文件约束、networkHosts、apiVersion 一致等 |
| quality | 预览图尺寸、描述长度、占位符、标签、主题/CSS 规则等 |
| test (fixtures) | mock host 跑确定性脚本,测权限与 API 调用 |
结尾示例:
[echo-workshop-sdk] Gate PASS for echo.harbor-theme · quality 9 pass / 1 warning / 0 blocker · fixtures 1/1- blocker = 0 才能考虑发布
- warning 不强制,但
next会告诉你该不该修 - 早期可
npm run check -- --warn-only(退出码 0,仍打印失败项)
next:今天先修什么
Section titled “next:今天先修什么”npm run next输出分两块:
- Fix-first — 来自当前 quality 报告,每条带「跑这条命令能清掉它」
- 还允许的动作 — 宿主白名单里还能
add的 slot、color、permission、capability
适合每天开工先看一眼,避免在 blocker 没清完时加新功能。
dev 作者控制台
Section titled “dev 作者控制台”npm run dev# 默认 http://127.0.0.1:41783 ,占用则自动顺延并打印实际端口控制台里通常能看到:
| 区域 | 用途 |
|---|---|
| Gate 状态 | 与 check 相同的 PASS/FAIL 摘要 |
| Permissions / capabilities | 插件或 runtime 已声明能力 |
| Fixtures | 点跑 mock 测试 |
| Preview | stylesheet/runtime/歌词/可视化/DSP 有 fixture 预览链接 |
| Recent file | 最近改动的源文件 |
| Raw report | 完整 JSON,方便复制给协作者 |
控制台显示 Disconnected → dev 进程已退出,看启动 dev 的那个终端报错,修完再开。不是 ECHO 断线。
显式指定端口且被占用会直接失败(不顺延),适合 CI 或固定端口脚本:
node .\bin\echo-workshop-sdk.mjs dev . --port 41783watch:保存即重跑
Section titled “watch:保存即重跑”npm run watch- 递归监听项目文件
- 合并编辑器连续保存(防抖)
- 忽略 SDK 自己写回的 manifest 变更,避免死循环
- 每次结束打印与 check 相同的一行 Gate 摘要
适合改 CSS、改 plugin.js、调 JSON 时开着。
单独跑 quality / test
Section titled “单独跑 quality / test”npm run qualitynpm run testnode .\bin\echo-workshop-sdk.mjs validate .node .\bin\echo-workshop-sdk.mjs explain .node .\bin\echo-workshop-sdk.mjs inspect . --json| 命令 | 何时用 |
|---|---|
quality | 只关心预览图、描述、占位符、标签 warning |
test | 只跑 mock fixture,不重算 manifest |
validate | 只校验 manifest 与内容文件 |
explain | 人读摘要:kind、版本、许可、文件列表 |
inspect | 机器可读项目状态 |
--json 给脚本和编辑器
Section titled “--json 给脚本和编辑器”这些命令支持 --json,方便 CI 或自己写脚本解析:
check · quality · test · validate · next · version · doctor · snippet · api · example list
npm run check -- --json | jq .gate生成项目的 GitHub Actions 已示范如何把 check 输出贴进 PR summary → 索引 · VS Code 与 CI。
占位符会被 quality 拦住
Section titled “占位符会被 quality 拦住”quality 会扫描标题、描述、VST ClassId 等是否仍为模板占位,例如:
Replace with…00000000000000000000000000000000(假 ClassId)todo/workshop author等
audio-plugin-profile 类占位符是 blocker;其它 kind 可能是 warning。发布前用真实文案替换。
| 工具 | 用法 |
|---|---|
| VS Code | 默认构建任务 Ctrl+Shift+B = check;任务面板可开 Dev console |
| Git | 每轮 check 通过后 commit;manifest 由 sync 生成,要一并提交 |
| Node 20+ | node --version;SDK 零依赖,不必 npm install 整个 monorepo |
Windows:路径有空格请加引号 dev ".\My Harbor"。
- 常见排错(索引) · 作者 FAQ
- 发布与更新 — check 全绿之后
- SDK TROUBLESHOOTING.md