node.js - Hur får man @babel/register att transpile ESM-importer?
Jag använder följande för att transpilera TypeScript-filer vid körning.
import babelRegister from "@babel/register"
babelRegister({
presets: [
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript",
],
extensions: [".tsx"],
cache: false,
})
Allt fungerade bra tills jag försökte migrera kodbasen från CommonJS till ESM.
Enligt Sindre Sorhus måste man ersätta require med import och lägga till .js när ingen filändelse angavs (./src/routers/Static hänvisar till ./src/routers/Static.tsx).
Jag ersatte följande
const StaticRouter = require("./src/routers/Static").default
med
import StaticRouter from "./src/routers/Static.js"
Nu kastas följande fel.
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
Hur kan jag kringgå felet?
Tack för att du hjälper till!