AI 自動化 2026年4月22日

OpenClaw npm ピア依存ドリフトとクラウド Mac クリーンリビルド 2026:MacLogin Apple Silicon ゲートウェイで ERESOLVE 揺れを止める

MacLogin AI 自動化チーム 2026年4月22日 約 15 分

小さなプラグイン更新のあとに MacLogin ミニで npm install が赤に変わるとき、原因はめったに壊れた npm ではありません。 ほぼ常に ピア依存ドリフト です:オプショナルピア、重複メジャー、ドキュメント化された Node 22 基線と食い違うホイスト。この 2026 年 4 月ガイドはスナップショット、削除、npm ci、doctor、launchd の再現手順を HK/JP/KR/SG/US で示し、スノーフレーク化を避けます。 症状表、ディスク計算、FAQ を含みます。doctor 診断 読者向けです。

インストール比較は install.sh vs npm -g、ヘッドレスは オンボードとデーモン。料金 pricing、ヘルプ help、VNC VNC、ハブ OpenClaw ハブ。状態 バックアップ、カットオーバー ヘルスチェック

共有ミニでピアが痛い理由

使い捨てコンテナと違い、レンタルミニは ~/.npm3–7 の並行実験を蓄積します。未完の npm link がホイストを壊し、ゲートウェイは誤った深さからプラグインを解決します。

  • 共有ホームで誰かの --legacy-peer-deps が次を汚染。
  • オフラインミラーは公開 npm より 24–72 時間遅い。
  • LaunchAgents がログフラッシュ前に再起動し最初の ERESOLVE を隠す。
ディスク: node_modules ボリュームに最低 18 GB 空き。

症状マトリクス

症状根っこ最初の手当確認
起動時 ERESOLVEプラグインメジャー衝突親を固定npm explain
サイレント exit 1欠落オプショナルピアdev 込み npm ciopenclaw doctor
ホットリロードループ部分インストールrm -rf node_modulesdiskutil + df

7 ステップクリーンリビルド

  1. スナップ ~/.openclaw とロック:状態ガイド
  2. 停止 LaunchAgent(15 秒猶予)。
  3. 削除 node_modules と lock は方針次第。
  4. npm cache verify、破損なら prune。
  5. npm ci、optional は本番と一致させる。
  6. openclaw doctor --json を ~/Logs に。
  7. launchd 再起動後、ヘルスを 5 回 curl。
警告: 同一プレフィックスで pnpmnpm を混ぜない。

ロックファイル方針と CI 同等性

package-lock.json をゲートウェイをデプロイするのと同じブランチにコミットする。CI は可能なら macOS runner で npm ci を実行する;Linux のみだと macOS が異なる方法で解決する optional を取りこぼし、2026 年 4 月の MacLogin サポートチケットの約 12% に現れる。

マージゲートに、ゲートウェイプロファイルで npm ls --all --omit=dev が非ゼロ終了なら失敗させる。開発時のインストールが緑でも通さない。さらに週次ジョブでレンタルミニ本体に同じコマンドを再実行し、launchd がサービスを回し直す前に CI イメージとホストの APFS レイアウトのズレを捕まえる。

overrides、bundledDependencies、engines の規律

ピアが争うとフラグに手が伸びる。MacLogin ホストでは引き継ぎに耐える宣言的修正を優先する:overridespackage.json に書く(チケットに担当者と失効日)、逐語で配布すべき小さなベンダーシムは bundledDependencies、運用手順で既に参照している Node 22 基線に合わせた engines.npm / engines.node の範囲。

  • overrides 監査: 各 overrides は緩和する CVE・回帰・上流課題を明記する。「緑にするため」だけの空の overrides は次のグルーミングで削除する。
  • bundled 依存: 再配布が法的に許され、チケット添付でチェックサムまで確認したパッケージに限る。
  • プライベート registry: Verdaccio や Artifactory ミラーがメタデータを並べ替えるならミラー版を固定し、ロックファイル更新と一緒に npm view の出力をログに残す。
  • ワークスペース構成: モノレポのゲートウェイは npx --no-install の境界を宣言し、兄弟パッケージからの誤った npm link が実行時にピアグラフを書き換えないようにする。
エンジンガード: 全員が同じ Node マイナーであることを確認したら、ゲートウェイプレフィックスのプロジェクト .npmrcengine-strict=true を有効にする。マイナーの食い違いは「CI ではピアが満たされるがミニでは満たされない」隠れ原因になりやすい。

引き継ぎテンプレの項目

変更依頼には次を含める:ロックファイルハッシュの前後、衝突パッケージごとの npm explain の抜粋、doctor JSON の差分、再起動した LaunchAgent の plist パス。セキュリティレビューはこれらで overrides が一時的負債か恒久方針かを判断する。

node_modules のディスク予算

週次 du -sh ~/.openclaw/**/node_modules9 GB 超で計画リビルド。inode と .npm/_cacache7 日 TTL 掃除も。

launchd 前の doctor ゲート

doctor JSON をリリース成果物として diff。新規警告がオーナーなしで 2 件超なら却下。カットオーバー記事 と併用。

FAQ

--force? 捨てクローンのみ。共有リースでは禁止。

HK と US の Node は? help の同じ LTS マイナーに揃える。

MacLogin が消してくれる? 緊急リセットはあるが日常は自前 runbook でピンを守る。

npm overrides はいつ --legacy-peer-deps より安全か? overrides はレビューされバージョン管理され git blame で見える。legacy のフラグはシェル履歴に潜み、次のエンジニアが素の npm install をすると消える——使い捨てディレクトリ以外では共有レンタルミニで禁止が無難。

Mac mini M4 が速い理由

M4 は npm 展開が速く、再インストール中も TS 言語サーバを暖かく保てる。多地域フリートで tarball の地理歪みを減らし、ディスクが詰まったら pricing で大型ミニへ。

npm グラフに合うノードを選ぶ

doctor ゲート付きインストールを MacLogin Apple Silicon で HK/JP/KR/SG/US に。