This issue is to link to various tooling and runtime implementations. ### Tools - Acorn: [`acorn-import-phases`](https://www.npmjs.com/package/acorn-import-phases) plugin - Babel [7.23](https://babeljs.io/blog/2023/09/25/7.23.0#deferred-import-evaluation-15845-15878) via [`@babel/plugin-proposal-import-defer`](https://babeljs.io/docs/babel-plugin-proposal-import-defer) - https://github.com/babel/babel/pull/15845 - https://github.com/babel/babel/pull/15878 - Transform only works for CommonJS output - Biome [2.1.3](https://biomejs.dev/internals/changelog/version/2-1-3/) - https://github.com/biomejs/biome/issues/4215 - https://github.com/biomejs/biome/pull/6949 - esbuild [0.25.7](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md#0257) - https://github.com/evanw/esbuild/issues/4238 - https://github.com/evanw/esbuild/commit/fc3da579557d775c022dbfc4e68843d34cab9fb5 - Syntax only, no transform - Oxc [0.71.0](https://github.com/oxc-project/oxc/pull/11182) - https://github.com/oxc-project/oxc/issues/10978 - https://github.com/oxc-project/oxc/pull/11157 - Prettier [3.1.0](https://prettier.io/blog/2023/11/13/3.1.0.html#deferred-import-evaluation) - https://github.com/prettier/prettier/issues/15471 - https://github.com/prettier/prettier/pull/15487 - Rolldown TBD - https://github.com/rolldown/rolldown/issues/4857 - Partial support: [Syntax tolerance](https://github.com/rolldown/rolldown/pull/9503) - Rollup TBD - https://github.com/rollup/rollup/issues/5932 - Rspack [v2.0.0](https://www.rspack.dev/blog/announcing-2-0#import-defer) - https://github.com/web-infra-dev/rspack/issues/10608 - https://github.com/web-infra-dev/rspack/pull/11871 - https://github.com/web-infra-dev/rspack/pull/12900 - Experimental via [`experiments.deferImport: true`](https://github.com/web-infra-dev/rspack/blob/main/website/docs/en/config/experiments.mdx#experimentsdeferimport) - SWC [1.12.14](https://github.com/swc-project/swc/blob/main/CHANGELOG.md#11214---2025-07-14) - https://github.com/swc-project/swc/issues/10843 - https://github.com/swc-project/swc/pull/8279 - https://github.com/swc-project/swc/pull/10845 - TypeScript [5.9](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/#support-for-import-defer) - https://github.com/microsoft/TypeScript/issues/59391 - https://github.com/microsoft/TypeScript/pull/60757 - Syntax only, no transform - webpack [5.105](https://github.com/webpack/webpack/blob/main/CHANGELOG.md#51050) https://github.com/webpack/webpack/pull/16567 - https://github.com/webpack/webpack/pull/20064 - Experimental via [`experiments.deferImport: true`](https://webpack.js.org/configuration/experiments/#experimentsdeferimport) ### JS Engines - JSC (unflagged, not yet shipped) - https://github.com/WebKit/WebKit/pull/70733 - SpiderMonkey tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=1898544 - https://bugzilla.mozilla.org/show_bug.cgi?id=1952263 - V8 tracker: https://issues.chromium.org/issues/398218423 - Merged: https://chromium-review.googlesource.com/c/chromium/src/+/7595315 ### Runtimes - Deno [2.8](https://deno.com/blog/v2.8#import-defer) - https://github.com/denoland/deno/pull/32360 - Bun 1.4.0 (unflagged, not yet shipped) - https://github.com/oven-sh/bun/pull/30975
This issue is to link to various tooling and runtime implementations.
Tools
acorn-import-phasesplugin@babel/plugin-proposal-import-deferimport deferparsing support babel/babel#15845import deferproposal transform support babel/babel#15878import deferevanw/esbuild#4238phase: "defer"in ESTree AST oxc-project/oxc#10978phasefield toImportDeclarationin ESTree AST oxc-project/oxc#11157@babel/parserto v7.23.0 prettier/prettier#15471import defer) web-infra-dev/rspack#10608import.defer()for statical path web-infra-dev/rspack#12900experiments.deferImport: truedeferphase swc-project/swc#10845import deferStage 3 proposal support microsoft/TypeScript#59391import deferproposal microsoft/TypeScript#60757import.defer()for statical path webpack/webpack#20064experiments.deferImport: trueJS Engines
Runtimes
import defer(TC39 Stage 3) oven-sh/bun#30975