Vyhledávání na webu

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!