DeepSeek Harness (DSH) 理念是“一切皆插件”,但在使用 pnpm 作为包管理器时,开发者常遇到安装或更新插件时构建脚本被拦截的问题(如 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED)。频繁测试最新版本或安装新功能时,维护 allowBuilds 允许列表非常繁琐。dsh-pnpm-build-control 插件提供了在 DSH 界面中统一控制构建审批的开关,解决了这一痛点。
插件定位¶
这是一个 DSH 管理类插件,用于在添加插件弹窗中统一开关所有配置的 pnpm 构建脚本审批。它支持首次关闭时的风险确认,并提供命令行接口。
- 所有者:Han-1413141
- 分类:admin-security
- 许可证:MIT License
核心功能¶
- 界面开关:在插件添加弹窗中增加“构建脚本审批”开关。
- 审批控制:
- 开启:所有 DSH 配置按各自原有的
allowBuilds规则审批构建脚本。 - 关闭:所有 DSH 配置允许全部依赖执行构建脚本,包括 GitHub 插件、新版本和间接依赖。
- 开启:所有 DSH 配置按各自原有的
- 底层修改:修改各配置目录下的
pnpm-workspace.yaml文件,设置dangerouslyAllowAllBuilds字段。 - 状态查看:查看各配置的实际状态。
- 风险确认:首次关闭审批时,会显示风险说明弹窗,需阅读并确认。
- 命令行支持:提供
status、off、on命令。 - 兼容性修复:修复同一 Git 地址重复安装导致的
ambiguous-install错误。
安装与启用¶
需要 Node.js >= 22.19。在 DSH 界面或命令行中执行以下命令安装:
dsh plugin --profile desktop add github:Han-1413141/dsh-pnpm-build-control
若需在 web 配置中显示开关,将命令中的 desktop 换为 web。安装后需完整退出并重新打开 DSH 以加载插件。
典型用法¶
场景一:频繁测试最新版本¶
开发者反复安装最新测试版时,关闭审批可避免因版本更新导致构建被拦截,无需手动维护新版本的允许条目。
场景二:安装新功能¶
用户安装新版本功能时,关闭审批以允许执行必要的安装和构建脚本。
场景三:修复 Git 安装错误¶
输入同一 Git 地址重复安装,利用插件修复的兼容性处理,获取最新提交。
配置与风险¶
- 作用范围:当前 DSH_HOME 下的全部 DSH 配置。
- 文件修改:关闭审批会修改各配置目录下的
pnpm-workspace.yaml。 - 风险说明:关闭审批后,所有插件及其依赖的构建脚本将以 DSH 当前的用户权限运行,具备读写文件、访问网络的能力。恶意或被篡改的依赖可能造成数据泄露或执行恶意代码。
- 首次关闭:必须点击“我已了解风险,关闭审批”按钮,否则设置不会生效。
命令行使用¶
CLI 需要使用绝对路径调用 lib/cli.js。以下为 Windows PowerShell 示例:
# 查看所有 DSH 配置的构建审批状态
node "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-pnpm-build-control\lib\cli.js" status
# 关闭审批(首次执行需带 --accept-risk)
node "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-pnpm-build-control\lib\cli.js" off --accept-risk
# 重新开启审批
node "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-pnpm-build-control\lib\cli.js" on
注意事项¶
- 卸载不撤销设置:卸载插件不会自动撤销已保存的 pnpm 设置。如需恢复审批,需先开启审批再卸载。
- Node.js 版本:需确保系统安装了 Node.js >= 22.19。
- 配置备份:插件在修改前会自动保存原始 YAML 内容到
DSH_HOME/pnpm-build-control/backups/。 - 重启生效:升级插件后,必须完整退出 DSH(包括托盘驻留)后重新打开,才能加载新模块。
生态背景¶
DSH 是一个基于插件架构的开发环境,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
- GitHub 仓库:https://github.com/Han-1413141/dsh-pnpm-build-control
- 社区目录:https://www.skillhub.cn/plugins/Han-1413141/dsh-pnpm-build-control