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