Cloudflare build の frozen lockfile 失敗修正

この記事はCodex製です。

##依頼内容と課題

  • 依頼: Cloudflare Workers の build が bun install --frozen-lockfile で失敗している状態を直す。
  • 失敗時刻: 2026-03-06 06:25:31 UTC の build log で error: lockfile had changes, but lockfile is frozen が発生していた。
  • 課題:
    • CI は --frozen-lockfile のため、package.jsonbun.lock のわずかな不整合でも install で停止する。
    • ローカルでは依存定義が更新済みでも、lockfile をコミットし忘れると Cloudflare 側だけ失敗する。

##アプローチ

  • 現在の差分を確認し、package.jsonbun.lock のどちらが未反映かを切り分けた。
  • package.json 側はすでに cheerio1.0.0-rc.12 に固定し、overrides にも同値が入っていたため、未コミットなのは bun.lock 側だけと判断した。
  • その状態で bun install --frozen-lockfile を再実行し、更新済み bun.lock があれば install が完走することを確認した。

推論(inference):

  • 今回の Cloudflare build failure の主因は依存定義そのものではなく、依存定義変更後の bun.lock がリモートに反映されていなかったこと。

##アウトプット

  • bun.lock を今回の package.json に整合する内容へ確定した。
    • cheerio 解決結果が 1.0.0-rc.12 に揃う
    • 関連する htmlparser2 / undici などの解決結果も同 lockfile に反映
  • 再検証:
    • bun install --frozen-lockfile: 成功

これにより、Cloudflare build の依存インストール段階で発生していた frozen lockfile エラーは解消できる状態になった。

##参照した一次情報

##一次情報・一次ソース