inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

차세대 Node.js 백엔드 서버 개발(Fastify & Prisma & Typescript와 함께하는)

Fastify 기본 설정

TypeError 관련하여 문의드립니다.

해결된 질문

293

Syno

작성한 질문수 2

0

안녕하세요. TypeError 관련하여 문의드립니다.

강의 회차는 Fastify 기본 설정입니다.

먼저 아래는 제가 실습하는 환경입니다.

Mac OS Ventura
Node Version : v18.19.1
NPM Version : 10.2.4

 

아래는 오류에 대한 내용입니다.

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/jiyong/Desktop/Stater-Kit/src/main.ts
    at new NodeError (node:internal/errors:405:5)
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:136:11)
    at defaultGetFormat (node:internal/modules/esm/get_format:182:36)
    at defaultLoad (node:internal/modules/esm/load:101:20)
    at nextLoad (node:internal/modules/esm/hooks:864:28)
    at load (/Users/jiyong/Desktop/Stater-Kit/node_modules/ts-node/dist/child/child-loader.js:19:122)
    at nextLoad (node:internal/modules/esm/hooks:864:28)
    at Hooks.load (node:internal/modules/esm/hooks:447:26)
    at MessagePort.handleMessage (node:internal/modules/esm/worker:196:24)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:786:20) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}
[nodemon] app crashed - waiting for file changes before starting...


이미 커뮤니티에 해당 오류와 관련하여 질문이 있길레 강사님이 답변하신 부분을 보고 체크해봤지만 제 코드상 잘못된 부분을 못찾겠더라구요

그래서 Google Drive에 올려놓으신 fastify-init.zip을 통하여 진행해보았지만 같은 오류가 뜹니다.

해결 방법을 알 수 있을까요 ?

node.js typescript rest-api prisma fastify

답변 1

0

Syno

"scripts": {
  "start:build": "tsc -w --project tsconfig.json && npx -p tsconfig.json",
  "build:live": "nodemon --exec node --loader ts-node/esm src/main.ts --verbose",
  "start": "npm run build:live"
},


조금 더 찾아보니 해결을 하기는 했는데 이게 정확한 방법인지는 모르겠습니다..

1

Indie Coder

혹시 package.json 을 강의처럼 설정하면 오류가 발생하나요??

오류 나는 코드결과물를 메일로 보내주시면 확인해 보도록 하겠습니다

메일: freeseamew@gmail.com

 

그리고 일단 외부에 있어서 17일 밤이나 18일까지 확인하고 답변드리겠습니다

0

Syno

넵 ! 방금 다시 한번 정리하여 메일로 전달드렸습니다.

확인 후 답변 부탁드립니다. 감사합니다 !

1

Indie Coder

일단 해당 오류가 발생했던 가장 큰 이유는 해당 버전의 nodejs에서 ts-node가 해당 명령어로 더이상 정상 작동 하지 않아서 발생했던 것 같습니다.

제가 강좌를 만들 때 사용했던 버전은 18.12.1 이었고, 그 이후 18버전 및 20버전에서는 강좌에서 작성한 방법으로는 ts-node로 서비스가 구동되지 않는 것을 확인했습니다.

그리고 이후 버전부터는 ts-node를 esm과 실행하기 위해서는 node --loader ts-node/esm 를 추가하고 작동하는 것을 저도 확인했습니다.

nodemon, ts-node 그리고 esm을 함께 사용하는 것에서는 아직까지 조금 불안전한 면들이 남아있어 node 버전이 변경될 경우 이처럼 문제가 발생할 수 있는 것 같습니다.

만약 개발시 ts-node를 사용하는 것이 조금 꺼림직할 경우 다음과 같이 tsx를 설치하고,

npm i -D tsx

설치한 tsx를 이용해서 실행시키는 것도 괜찮은 방법입니다.

  "scripts": {
    "start:build": "tsc -w --project tsconfig.json && npx -p tsconfig.json",
    "build:live": "npx tsx src/main.ts",
    "start": "npm run build:live"
  },

다만 이렇게 할 경우 실행에는 문제가 없겠지만 코드를 수정할 경우 꼭 서버를 새로 실행시켜야 하는 약간의 번거러움은 있습니다.

그리고 이부분은 실제 개발된 서버를 배포하는 것에는 영향을 주는 부분은 아닙니다. typescript로 작성된 코드는 배포시에는 꼭 javascript로 컴파일 해야 하기 때문입니다.

해당 내용으로 최대한 빨리 강좌를 업데이트 하도록 하겠습니다.

감사합니다.

0

Syno

감사합니다.
답변 부분 읽고 나서 드디어 궁금증이 해결되었네요.
새롭게 배워가는 부분들이 많아 좋습니다 😀

좋은 강의 내주셔서 다시 한번 감사합니다.

Next.js 사전렌더링 이해하기 부분

0

6

1

프론트엔드 학습 수준 문의

0

22

2

useMutation 적용 후 새로운 글 등록시 content가 안보여요

0

23

2

적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>

0

20

2

모달 관련 질문

0

26

3

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

38

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

41

1

스프링부트 버전 문의드립니다.

0

31

1

lucide react 아이콘 설치

0

35

2

17강 zustand store 서버에서 생성

1

30

1

outDir 옵션 추가 후 컴파일 오류 질문

0

56

1

문의관련 문의

0

37

2

next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?

0

47

2

prisma migrate 오류

0

179

3

401 not expired token 에러 메세지는 언제 쓰이나요?

0

266

2

Swagger 문서 접근 권한

0

235

1

앱에 refreshToken을 전송할때 궁금한점이 있습니다.

0

329

2

배포-ubuntu에서 문제

0

243

1

openssl 설치후 적용 안되요

0

357

1

comment 기능

0

193

1

섹션 5 login 인증 기능

0

332

2

Prisma 환경 설정 질문있어요!

0

247

2

똑같이 따라하고 오류나서 다시해보고 다시해보고 올려주신 코드 확인해봐도 계속 에러가 뜨는대요 ㅠ.ㅠ

0

800

1

강좌의 샘플 프로젝트 파일을 올려주시면 좋을 것 같아요.

0

557

2