인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

최경호님의 프로필 이미지

작성한 질문수

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

Hello TS World!

ts-node src/index.ts 실행시 오류 건

해결된 질문

작성

·

538

0

안녕하세요 윈도우 사용자이구요

$ npm install ts-node -g 설치 하니
changed 20 packages in 3s

그리고 강의 대로 ts-node src/index.ts 하니 아래와 같이 오류가 나고 있습니다 ㅠㅠ

 

$ ts-node src/index.ts

(node:22880) 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)

D:\work\onbity-typescript\section01\src\index.ts:3

export {};

^^^^^^

SyntaxError: Unexpected token 'export'

at internalCompileFunction (node:internal/vm:128:18)

at wrapSafe (node:internal/modules/cjs/loader:1280:20)

at Module._compile (node:internal/modules/cjs/loader:1332:27)

at Module.m._compile (C:\Users\PC\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:1618:23)

at Module._extensions..js (node:internal/modules/cjs/loader:1427:10)

at Object.require.extensions.<computed> [as .ts] (C:\Users\PC\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:1621:12)

at Module.load (node:internal/modules/cjs/loader:1206:32)

at Function.Module._load (node:internal/modules/cjs/loader:1022:12)

at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)

at phase4 (C:\Users\PC\AppData\Roaming\npm\node_modules\ts-node\src\bin.ts:649:14)

 

 

답변 2

0

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

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

현재 Node.js의 LTS가 20버전대로 업데이트 되면서 ts-node가 정상 작동하지 않고 있는 상황입니다 ㅠㅠ

이에 아래 그림과 같이 해당 챕터의 수업자료와 다음 챕터에 ts-node 대신 tsx라는 새로운 도구를 활용하셔야 한다고 안내해드리고 있습니다. 참고하시어 tsx로 진행하시면 될 것 같습니다!

image.png

 

최경호님의 프로필 이미지
최경호
질문자

확인감사드립니다.~~

0

인프런 AI 인턴님의 프로필 이미지

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

제공해 주신 오류 메시지는 Node.js 환경에서 TypeScript 파일을 실행할 때 발생하는 흔한 문제입니다. 특히, ES 모듈 시스템과 관련된 설정 문제로 보입니다. “Unexpected token ‘export’” 오류는 TypeScript 파일을 CommonJS 모듈로 실행하려고 시도할 때 발생합니다. 이 문제에 대한 해결책을 간단히 안내드리겠습니다.

  1. package.json 설정 확인:
    오류 메시지에서 언급한 것처럼 package.json 파일에 "type": "module"을 추가해 보세요. 이렇게 하면 Node.js가 해당 프로젝트를 ES 모듈 시스템으로 인식합니다.
   {
     "type": "module"
   }
  1. 파일 확장자 변경:
    .ts 파일 대신 .mjs 확장자를 사용할 수도 있습니다. 이렇게 하면 Node.js가 해당 파일을 모듈로 처리할 수 있습니다.

  2. ts-node 설정 조정:
    ts-node를 사용할 때는 추가 설정이 필요할 수 있습니다. tsconfig.json 파일에서 module 옵션을 ESNext로 설정하고, 필요 시 ts-node와 함께 실행 옵션으로 --esm 플래그를 사용할 수 있습니다.

   {
     "compilerOptions": {
       "module": "ESNext"
     },
     "ts-node": {
       "esm": true
     }
   }

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

위의 설명과 링크가 문제 해결에 도움이 되었으면 좋겠습니다. 문제가 지속되면 추가적인 오류 메시지나 설정 파일의 내용을 공유해 주시면 더 나은 도움을 드릴 수 있을 것입니다.

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

최경호님의 프로필 이미지
최경호
질문자

ai 답변이 더 어렵내요 ㅠ

23년 이후 ts-node는 작동하지 않는다고 알았습니다.

tsx 로 해결되었내요