08

August 21, 2026 · View on GitHub

按现象找原因与处置。所有命令默认在仓库根目录执行。

安装类

现象原因处置
install-from-registry.mjs <name> 报"索引中未找到插件"插件不在 registry.jsonnode scripts/install-from-registry.mjs --list 看全量;本地索引过期则先 node scripts/build-registry.mjs;远端索引用 --remote
报"通道 auto 不可用。可用: "该条目无 install 字段(第三方未声明 npm/github,或本地插件无任何通道)第三方:访问条目 url 手动安装;本地:确认 packages/*/package.json 存在且 build-registry.mjs 已跑
报"sha256 校验失败"归档下载损坏或被篡改,或索引 checksum 过期重新 node scripts/pack.mjs <name> && node scripts/build-registry.mjs;仍失败则对比 Gitee raw 与索引 checksum
报"索引无 checksum,默认拒绝安装"归档存在但索引未重新生成(checksum 缺失)node scripts/build-registry.mjs 后重试。不要随手加 --no-verify——它绕过校验,仅在你确认来源可信且索引确实过期时使用
--remote 拉取失败网络到 Gitee raw 不通检查网络;或 clone 仓库后去掉 --remote 用本地索引
安装后重启 dsh web 无变化bundle 未生效或插件实例被禁用检查 ~/.dsh/profiles/web/cordis.patch.yml 中该实例是否 disabled: true;确认 dsh.profile.bundles 含该包

构建/发布类

现象原因处置
pnpm run typecheckCannot find type definition file for 'node'包缺 @types/node 依赖在包 devDependencies@types/node(模板已含);根目录 pnpm install 后重试
tsdowntransformPlugin / 版本行为异常tsdown 与 rolldown 版本不匹配对齐模板版本:tsdown 0.22.2 + typescript ~5.7.2
publish.mjs 报"检测到疑似密钥"发布产物含密钥模式(或误报,如测试字符串)删除/改写命中行后重试;确认误报可调整 scripts/lib/scan-secrets.mjs 正则
publish.mjs 报"git 工作区不干净"有未提交改动git status 查看;提交或 stash 后重试
publish-all.mjs 提示"已存在于 npm,跳过"该版本已发布(脚本不递增版本)升版本请用 node scripts/publish.mjs <pkg> patch 逐包发布
pack.mjs 退出码非 0有包打包失败看输出中 ✗ 项;常见为依赖未装或构建产物缺失

索引/目录类

现象原因处置
registry.json 与提交内容不一致(CI 报错)改了 packages/ 或 third-party/ 但没重新生成node scripts/pack.mjs && node scripts/build-registry.mjs 后提交
第三方条目在安装器里不可用third-party JSON 未声明 npm/github 字段(build-registry 白名单校验)registry/third-party/<name>.json 补合法 npm 包名或 github: owner/repo 字段

安全边界速记

  • --no-verify 绕过 checksum 校验——在确认索引过期且来源可信时使用。
  • 第三方插件 verified 恒为 false:安装 = 本机运行作者代码,先审查依赖与 postinstall 脚本。
  • 插件依赖的 postinstall 脚本风险:消费端用 pnpm onlyBuiltDependencies / ignoredBuiltDependencies 白名单限制。