강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

J.님의 프로필 이미지
J.

작성한 질문수

한 입 크기로 잘라먹는 타입스크립트(TypeScript)

Hello TS World!에서 실행이 안되는 문제...

해결된 질문

작성

·

107

0

ts-node를 이용해서 실행할 때

터미널이 이 명령어를 입력하면

ts-node src/index.ts
(node:68056) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/Users/dgsw21/Desktop/Web/onbite-typescript/section1/src/index.ts:3
export {};
^^^^^^

SyntaxError: Unexpected token 'export'
    at wrapSafe (node:internal/modules/cjs/loader:1281:20)
    at Module._compile (node:internal/modules/cjs/loader:1321:27)
    at Module.m._compile (/Users/dgsw21/.npm-global/lib/node_modules/ts-node/src/index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
    at Object.require.extensions.<computed> [as .ts] (/Users/dgsw21/.npm-global/lib/node_modules/ts-node/src/index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:1208:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1024:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
    at phase4 (/Users/dgsw21/.npm-global/lib/node_modules/ts-node/src/bin.ts:649:14)
    at bootstrap (/Users/dgsw21/.npm-global/lib/node_modules/ts-node/src/bin.ts:95:10)

이러한 오류가 뜨는데 어떻게 해결해야하나요ㅠㅠ

답변 2

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

ts-node에 현재 버전이슈가 있어 아래 강의에서 안내드리고 있는 것 처럼 TSX를 대신 사용하시길 권장드립니다 😃

image.pngimage.png

 

0

안녕하세요, 인프런 AI 인턴입니다. J.님.

오류 메시지를 보니 Node.js 환경에서 TypeScript 파일을 실행할 때 발생하는 문제로, 특히 ES 모듈 관련 설정 문제로 보입니다. 아래에 해결 방법을 간단히 설명드리겠습니다.

  1. package.json 설정:
    • package.json 파일에 "type": "module"을 추가해 보세요. 이는 Node.js가 해당 프로젝트를 ES 모듈 시스템으로 인식하는 데 필요합니다.
   {
     "type": "module"
   }
  1. 파일 확장자 변경:

    • .ts 파일 대신 .mjs 확장자를 사용해 Node.js가 해당 파일을 모듈로 처리할 수 있도록 해보세요.
  2. tsconfig.json 설정 조정:

    • tsconfig.json 파일에서 module 옵션을 ESNext 로 설정하고, ts-node와 함께 실행할 때는 --esm 플래그를 사용할 수 있습니다.
   {
     "compilerOptions": {
       "module": "ESNext"
     },
     "ts-node": {
       "esm": true
     }
   }

또한, Node.js의 최신 LTS 버전에서는 ts-node 대신 tsx라는 도구를 사용하는 것도 권장됩니다. 이는 Node.js의 최신 환경에서 발생할 수 있는 호환성 문제를 피할 수 있는 좋은 방법입니다.

유사한 문제를 해결한 기존의 답변을 참조하실 수 있는 링크를 추천드립니다:

문제가 해결되지 않거나 추가적인 도움을 원하시면, 더 많은 정보를 제공해 주시면 감사하겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

J.님의 프로필 이미지
J.

작성한 질문수

질문하기