AI 自動化 2026 年 5 月 9 日

OpenClaw 閘道 npm ci、package-lock.json、可重現安裝與租用雲端 Mac 上的乾淨重建紀律(2026-05-09)

MacLogin AI 自動化團隊 2026 年 5 月 9 日 約 24 分鐘閱讀

2026 年的社群 issue 流反覆呈現同一種故障模式:閘道停留在仍持有檔案控制代碼的狀態下,操作員卻執行 npm install -g openclaw@latest,留下半重新命名的目錄樹、欠缺的插件執行時相依性,以及餓死 Telegram 長輪詢的重啟迴圈。 在香港、日本、韓國、新加坡與美國交付自動化的 MacLogin 租戶應把閘道視作與其他生產二進位同級:提交鎖檔、用 npm ci 語意驅動安裝、先停 launchd,並在模組解析快取說謊時演練雙重重啟緩解。 這份 2026 年 5 月維運手冊固化決策矩陣、停止順序、九步 CI、可觀測性檢查與 FAQ,讓 OpenClaw 在 Apple Silicon 租約上保持可預測。

可與 同伴相依性漂移與乾淨重建Doctor 診斷手冊macOS 應用程式與 CLI 交接 對照閱讀。專題:OpenClaw 專題索引。另見 說明定價

即便 OpenClaw 看似「CLI 極簡」,鎖檔仍然重要

閘道為傳輸層、插件與模型介接器打包遞移相依性。若沒有固定的相依圖,兩台 semver 範圍相同的機器也可能在 registry 發布後悄然分叉——這正是可重現 CI 要消滅的惡夢。

警告:事故期間切勿手改 package-lock.json;應透過受控升級與程式碼審查重新產生。

npm ci 對照 npm install(決策矩陣)

命令閘道上何時使用若跳過會怎樣
npm ciCI 映像、全新工作區、重建流水線確定性安裝;鎖與 package 不一致時快速失敗
npm install有意改動鎖檔的探索式升級若未重新提交,日本與美國節點之間漂移
npm install --package-lock-only準備在不執行指令碼的 PR 中更新鎖仍需審閱遞移相依跳動

將 Node.js 與 npm 與閘道版本一併固定

在 CMDB 記錄三元組 (node -v, npm -v, openclaw --version)。使用 Volta、asdf 或 MacPorts 釘版本,並與 OpenClaw 專題 中的 Node 版本指引對齊,使 CI 與租用 mini 執行相同引擎。

提示:透過 LaunchAgent 環境變數模式 匯出 NODE_OPTIONS 與插件路徑,重啟即可繼承釘死的工具鏈。

碰觸 npm 全域路徑前先停 launchd

  1. launchctl bootout gui/$UID/ai.openclaw.gateway(依你的 plist 調整標籤)。
  2. 透過 pgrep -fl openclaw 確認沒有殘留 node 子程序。
  3. 至此才執行 npm 變更。

doctor 報告局部目錄樹時的乾淨重建流程

遵循同伴漂移文章的精神:刪除 node_modules,用 npm ci 重裝,重跑 openclaw doctor,並把 stdout 打進支援包。全域安裝則鏡像社群變通:重裝前先移除損壞的 prefix 路徑。

閘道升級的九步 CI 維運手冊

  1. 快照目前 plist、校驗和與健康 JSON。
  2. 分支在 Git 中以語義版本標籤管理鎖檔更新。
  3. 建置使用 npm ci 的暫時 CI macOS runner。
  4. 測試 doctor、合成 webhook 與模型 ping。
  5. 暫存帶不可變版本的構件到物件儲存。
  6. 停止生產閘道(依 launchd 政策)。
  7. 安裝來自暫存構件(不要用漂浮的 latest)。
  8. 引導若健康抖動則執行兩次(雙重重啟緩解)。
  9. 發布發行說明與回滾 tarball 位置。

針對陳舊模組解析的雙重重啟緩解

健康檢查通過但執行時仍引用舊雜湊時,短暫休眠後立即第二次執行 launchctl kickstart -k。記錄症狀,以免後繼工程師把它誤判為 TLS 或代理故障。

漂移指南聚焦引爆相依圖;本文聚焦鎖住相依圖。兩者並用:日常建置上鎖,上游發布衝突同伴而需要應急重建時再打開漂移文章。

跨區域閘道推廣的構件快取

香港與美西租戶在同一小時升級時,從公共 registry 拉兩份相同 tarball 容易觸發限速與抖動。把不可變構件提升到自有物件儲存桶(S3 相容、Artifactory 或 GitHub Release 資源),讓每台租約按內容定址 URL 拉取。在變更工單記錄 SHA256,並與 package-lock.json 的 git SHA 並列,便於稽核證明日本與新加坡節點執行了相同位元組。

區域建議快取回退
HK / SG亞太桶複本安裝並發限制為每分鐘 2 次
JP / KR東京鄰近邊緣快取傾向夜間視窗安裝
US美東主 + 西岸鏡像 tarball 已快取時使用 npm ci --prefer-offline
完整性:生產環境執行 npm ci 前校驗簽章——2026 年的供應鏈事件讓校驗和紀律不再是可選項。

常見問題

還能用 install.sh 嗎? 把指令碼 curl 視為一次性引導——任何重複場景都應過渡到已提交的鎖。

氣隙安裝怎麼辦?npm pack 產物打包供應商 tarball,在 npm ci --offline 前校驗 SHA256。

哪裡租隔離閘道? 對照 定價,把日本池與美國池拆開以隔離嘈雜升級。

Dependabot 應自動合併 OpenClaw 升級嗎? 僅當 CI 已門檻 doctor、webhook echo 與插件圖——否則仍以每週人工審閱為佳。

OpenClaw 專題、說明與區域容量

把鎖檔政策發布在 OpenClaw 專題 的內部版塊,讓每個區域繼承相同的停止順序清單。首爾團隊若需要與新加坡不同的插件集合,應拆分租約而不是在同一鎖圖上硬拗。

在專用 Apple Silicon 上執行 OpenClaw

HK · JP · KR · SG · US 節點,服務可重現閘道。