Старый реестр разбирал импорты как пути в файловой системе и заранее компилировал всю сборку для каждой изолированной копии Worker в V8. Поэтому
import.meta.resolve() не работал, а один и тот же исходный код мог компилироваться несколько раз и храниться в памяти в нескольких копиях.Новый реестр считает спецификаторы настоящими URL и компилирует модуль только при первом импорте. Есть занятное следствие:
counter.js?a и counter.js?b получат отдельное состояние, хотя загрузят один исходный файл. Встроенный модуль Node.js, напротив, останется одним экземпляром независимо от способа обращения к нему.Механику уже можно проверить с флагом
new_module_registry. В инженерном разборе Cloudflare показаны правила для ESM, CommonJS, WebAssembly, атрибутов импорта и API import.meta.
