[Next.js v14, Typescript] ReferenceError: File is not defined (feat. node v18)

옹잉·2025년 4월 21일
0

🛠해결한 에러들🛠

목록 보기
12/12

node 18 버전에서는 File 타입을 사용할 경우 빌드 시
ReferenceError: File is not defined 오류가 발생한다.

노드 버전을 20 이상으로 바꾸면 해결되긴 한다.

근데 당장 바꿀 수 없어 다른 방식으로 해결해야 했다.

문제 코드

import { z } from 'zod';

const FileWithType = z.object({
  file: z.instanceof(File),
  type: z.enum(['PC', 'MOBILE']),
});

zod로 타입 검증을 하는 도중, 브라우저 전용 객체인 File이 서버 환경(node v18)에서는 정의되지 않아 빌드 시 발생한 오류

해결한 코드

import { z } from 'zod';

const FileWithType = z.object({
  file: typeof File !== 'undefined' ? z.instanceof(File) : z.any(),
  type: z.enum(['PC', 'MOBILE']),
});

=> 브라우저 환경에서만 File 검증

profile
틀리더라도 🌸🌈🌷예쁘게 지적해주세요💕❣️

0개의 댓글