字面定义:插件在 package.json 的 engines.dsh 字段里声明它支持的宿主版本范围;宿主版本不在范围内时,插件留在列表里但不加载。
实测结果:把 ~/.dsh/profiles/node_modules 下223个包的package.json全读一遍,声明 engines.dsh 的包数是0。官方包一个都没声明。
所以在这个版本上,「版本门」作为机制还没有可观察的证据:没有包声明它,也就没有包会被它挡住。本站 /fix/ 里那条「被版本门拒绝」来自社区插件的CHANGELOG,属于公开资料整理,不是我们实测。
那插件版本不兼容怎么办
在这个版本上,实际能观察到的兼容问题来自两处:
- 宿主engines.node:这是package.json里的node版本要求,0.2.2起是
>=24.9.0。这个是确实生效的。 - 依赖装不上:插件依赖的包在pnpm安装阶段失败,表现是装的时候就报错,不是装上了不加载。
用法建议
看到「版本门」这类说法时,先问三个问题:哪个文件声明它、宿主在哪段代码里检查、拒绝时表现是什么。三个都答不上来,就先当「社区说法」对待,别写进自己的排查步骤。