node.js - Jak získat @babel/register pro transpile importů ESM?
Používám následující k překladu souborů TypeScript za běhu.
import babelRegister from "@babel/register"
babelRegister({
presets: [
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript",
],
extensions: [".tsx"],
cache: false,
})
Všechno fungovalo dobře, dokud jsem se nepokusil migrovat kódovou základnu z CommonJS na ESM.
Podle Sindreho Sorhuse je nutné nahradit require za import a přidat .js, pokud nebyla specifikována přípona (./src/routers/Static odkazuje na ./src/routers/Static.tsx).
Nahradil jsem následující
const StaticRouter = require("./src/routers/Static").default
s
import StaticRouter from "./src/routers/Static.js"
Nyní je vyhozena následující chyba.
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/sunknudsen/Code/sunknudsen/sunknudsen-website/src/routers/Static' imported from /Users/sunknudsen/Code/sunknudsen/sunknudsen-website/server.js
Jak mohu obejít chybu?
Díky za pomoc!