-
-
Notifications
You must be signed in to change notification settings - Fork 943
rewriteImportExtensions does not rewrite dynamic import() expressions #20120
Description
The rewriteImportExtensions option rewrites .ts/.mts/.cts/.tsx extensions in static import/export declarations, but does not handle dynamic import() expressions.
TypeScript's rewriteRelativeImportExtensions compiler option rewrites both static and dynamic imports (see esnextAnd2015.ts — visitImportOrRequireCall). OXC's implementation only visits ImportDeclaration, ExportNamedDeclaration, and ExportAllDeclaration, but not ImportExpression.
Input:
import "./a.ts";
const m = import("./a.ts");Expected output (with rewriteImportExtensions: "rewrite"):
import "./a.js";
const m = import("./a.js");Actual output:
import "./a.js";
const m = import("./a.ts"); // not rewrittenImpact: This breaks downstream consumers when packages use rewriteRelativeImportExtensions with OXC transpilation — emitted .js files still reference .ts extensions in dynamic imports, causing module resolution failures at runtime.
Metadata
Metadata
Assignees
Labels
Type
Fields
Give feedbackPriority