웹사이트 검색

node.js - @babel/register가 ESM 임포트를 트랜스파일하도록 하는 방법은?


저는 런타임에 TypeScript 파일을 변환하기 위해 다음을 사용하고 있습니다.

import babelRegister from "@babel/register"

babelRegister({
  presets: [
    "@babel/preset-env",
    "@babel/preset-react",
    "@babel/preset-typescript",
  ],
  extensions: [".tsx"],
  cache: false,
})

CommonJS에서 ESM으로 코드베이스를 마이그레이션하려고 시도할 때까지 모든 것이 잘 작동했습니다.

Sindre Sorhus에 따르면, require를 import로 교체하고 확장자가 지정되지 않은 경우 .js를 추가해야 합니다 (./src/routers/Static는 ./src/routers/Static.tsx를 가리킵니다).

나는 다음을 교체했다

const StaticRouter = require("./src/routers/Static").default

와/과, 함께

import StaticRouter from "./src/routers/Static.js"

이제 다음 오류가 발생합니다.

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

어떻게 오류를 우회할 수 있나요?

도와줘서 고마워요!