Cloudflareは9月9日、Workersの中核ランタイムworkerdのモジュールレジストリを再実装したと発表した。サーバーレス用途で使う安定版のNode.js APIはすでに既定で有効になり、全プランで64MiBまでデプロイできるよう圧縮バンドルサイズの上限も外した。API互換だけでは足りず、解決・読み込み・キャッシュの挙動をNode.jsに寄せることが今回の主眼だ。
互換フラグnew_module_registryを有効にすると、import.meta.url、import.meta.main、import.meta.resolve()が使える。指定子は実URLとして解決され、クエリやフラグメントが違うと同一ソースでも別インスタンスになる。with { type: 'json' }以外のインポート属性は無視せず例外になる。CommonJSからESMをrequire()する場合はNode.jsのrequire(esm)に従い、グラフにトップレベルawaitがあると同期要求は失敗する。モジュールは最初のimport時に遅延コンパイルされ、WebAssemblyはソースフェーズimportでWebAssembly.Moduleを直接受け取れる。
従来レジストリはパス解決で、バンドル全体を事前コンパイルし、分離ごとに複製を持っていた。新実装はURLを前提に遅延とキャッシュ共有を設計している。既定の有効化日はまだ無く、互換日を進めても自動では入らない。
実務への影響
Vite 8とRolldownが残すモジュールグラフを、ランタイム側で正しく解決できる土台になる。import.meta.resolveやクエリ付きimportに依存するコードは、フラグを付けたプレビュー環境で先に検証しないと本番で挙動が変わる。既存Workerは従来実装のまま動き続ける。