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

Inflearn Community Q&A

유재혁's profile image
유재혁

asked

TypeScript in bite-sized chunks

↳ If you encounter any errors related to undici-types 😦

section 02 타입스크립트 컴파일러 옵션 설정하기 파트에서 24분쯤 진행되는 ts-node 옵션관련 질문

Resolved

Written on

·

26

·

Edited

0

Section 02의 타입스크립트 컴파일러 옵션 설정하기 파트에서 24분쯤 진행되는 ts-node 옵션관련해서 질문드립니다! 현재 node 버전은 v20.11.1 입니다. 저같은 경우는 tsconfig.json 파일이 없을 경우 강의에서 나오는 그대로의 오류가 발생합니다. 예를들어 package.json에 "type": "module"을 설정하지 않고 해당 내용까지 쭈욱 강의를 run 해왔고, 무심코 ts-node 명령을 실행시켰는데 강의 초반 타입스크립트 설정때 발생했던 ts-node에 대한 명령이 더이상 발생하지 않는것으로 확인이 되었습니다. 그래서 무식하게 하나씩 설정 조합을 확인해봤는데 package.json에 type:module 설정을 하지 않은 채 tsconfig.json을 만들어두고 {} 형태로 비워두는것 만으로도 ts-node 명령 오류가 발생하지 않네요?

  • tsconfig.json

{/* 빈 설정 */}

ts-node 버전에 대한 차이로, 해당 부분에 대해서 업데이트가 진행된것인지 모르겠습니다. ts-node 버전은 v10.9.2 이며 @types/node 버전은 v22.10.5 입니다. 이런 경우에는 그냥 되면 되는갑다 하는 경우도 많겠지만... 왜 되는가? 에 대한 궁금증이 있고... 풀리지 않아 실시간 질문 남겨봅니다. 물론 tsx를 사용한다면 이부분에 대한 의문이 딱히 필요없을 수도 있겠지만, 현재 회사 프로젝트 중 백엔드(express)에서 typescript를 적용하여 사용중이며 ts-node를 사용하는것으로 알고있기에 명확하게 알아두고자 문의남겨봅니다.

만약 제 질문을 통해서 강의 초반부터 현재 질문 시점의 강의 파트까지 ts-node 에러 관련 원인이 좀더 좁게 도출될 수 있다면 다행입니다. 예를들면 강의 초반부에서 tsconfig.json 파일이 없을때는 타입스크립트의 모듈 시스템이 ESM으로 인식된다. 그러나 tsconfig.json이 {} 형태로라도 빈 형태로 설정되어 있다면 타입스크립트가 CJS로 자동 적용되어, ts-module이 해당 모듈 시스템으로 적용되도록 내부적으로 처리되어있다 혹은 업데이트로 인해 오류가 방지된다 등

typescriptts-node

Answer 1

0

winterlood님의 프로필 이미지
winterlood
Instructor

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

먼저 이 부분은 타입스크립트 관련된 내용이라기 보다는 ts-node 라이브러리의 동작에 관련된 원리이므로 저도 현재로써는 정확한 원인을 알고 있지는 않습니다 🥲 (ts-node가 공식 라이브러리도 아니다보니 중요하지 않다고 생각하고 있습니다)

더불어 tsconfig.json을 비워두고 타입스크립트를 사용하는 것은 사실상 불가능에 가깝고, 또 ts-node는 Node 20v+ 이상의 환경에서 정상적으로 동작하지 않고 있으며 이를 알고 있음에도 빠른 이슈 해결이 되지 않는 상황이라 이를 심도있게 고려하고 있지는 않습니다.

이에 제가 지금으로써는 알려드릴 수 있는 이야기가 딱히 없을 것 같아요 ㅠㅠ 시간될 때 조사해 보고 알게되면 추가로 답글 남겨드리겠습니다. 가급적 tsx를 사용하시는걸 권장드립니다.

유재혁's profile image
유재혁

asked

Ask a question