先看别人怎么写 engines
| 插件 | engines.dsh原文 |
|---|---|
| dsh-context | >=0.2.0-rc.2 || >=0.2.1-rc.2 || >=0.2.2-rc.1 |
| dsh-cost-meter | >=0.2.0-rc.1 <0.3.0-0 |
| dsh-vision-router | >=0.2.1-rc.5 <0.3.0-0 |
| dsh-ppt | >=0.2.2-rc.3 |
| billion-context | (不声明engines.dsh,只声明node >=20) |
两种写法各有道理:并列多个下界(dsh-context)表示「这几个入口都测过」;区间(dsh-cost-meter)表示「这个范围之外的没见过」。前者更诚实但更难维护,后者更好读但容易过期。
CHANGELOG 范本
## 0.3.0 适用宿主:>=0.2.2-rc.1 <0.3.0-0(在 0.2.2-rc.1 与 0.2.2-rc.3 上实测) 需要宿主提供的 inject 目标:dsh-api-remotes, dsh-client-ui-sidebar-right ### 变更 - 新增:… - 修复:… ### 升级注意 - 若宿主 < 0.2.2-rc.3,xxx 功能不可用(原因:依赖宿主新增的 yyy)
范本里真正值钱的是那行 「需要宿主提供的inject目标」。本站实测:宿主缺inject包时插件静默挂起、零输出、无报错,用户完全查不到原因。你把这行写出来,等于替用户省掉几小时的排查。
为什么「适用宿主」不能省
engines.dsh不会被任何环节校验(本站实测),所以它挡不住别人装错版本。- 唯一能起作用的时机是有人读了CHANGELOG。
- 写清楚适用范围 + 在哪测的,比写一串版本号有用。