개발 기록/의존성 오류 모음

Jest + TypeScript 환경에서 의존성 충돌 발생 시 대처법

JeongPark 2025. 4. 24. 17:45
728x90

Jest, ts-jest, TypeScript 의존성 충돌 해결 가이드 (버전 호환 완벽 정리)

Jest와 TypeScript를 함께 사용할 때 흔히 겪는 문제가 바로 의존성 충돌입니다.
특히 ts-jest, jest, typescript, @types/jest 버전 간의 호환성 문제가 자주 발생합니다.

이 포스트에서는 이러한 충돌 원인과 해결 방법을 실무 중심으로 정리해보겠습니다.


문제 요약

  1. ts-jesttypescript 버전 불일치
    • 예: ts-jest@26.4.4typescript@5.x와 호환되지 않음
    • 해결: ts-jest@28.x 이상으로 업그레이드 필요
  2. jestts-jest 버전 간 호환성 문제
    • jest@26.x에 맞는 ts-jest@26.x 사용 중이라면, typescript@5.x 지원 불가
    • 해결: jestts-jest 모두 최신 버전으로 맞춰야 함
  3. @types/jestjest 버전 불일치
    • 타입 정의 패키지도 jest 버전에 맞춰야 함
    • 예: jest@28.x 사용 시 @types/jest도 동일 버전군으로 업데이트
  4. eslint 관련 플러그인 호환성 문제
    • eslint@8.x와 관련 플러그인 (eslint-plugin-xxx, @typescript-eslint/...)도 호환성 확인 필요

해결 방법

1. ts-jest 최신화

npm install --save-dev ts-jest@latest

2. jest 최신화

npm install --save-dev jest@latest

3. @types/jest 최신화

npm install --save-dev @types/jest@latest

4. eslint 및 관련 패키지 업데이트

npm install --save-dev eslint@latest
npm install --save-dev @typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest

실무 팁

항목 추천 버전 비고
typescript ^5.x 최신 문법 지원 목적
jest ^28.x ts-jest와의 호환성 고려
ts-jest ^28.x typescript@5.x 지원
@types/jest ^28.x 타입 정의 일치 필요
eslint ^8.x Lint 정확성 및 안정성 강화

정리

  • 의존성 충돌은 대부분 버전 불일치에서 비롯됩니다.
  • jest, ts-jest, typescript, @types/jest는 항상 버전을 묶어서 관리하세요.
  • 주요 버전 업그레이드 시에는 node_modules, package-lock.json 삭제 후 재설치하는 것도 추천합니다.
rm -rf node_modules package-lock.json
npm install

이 가이드를 참고하여 안정적인 테스트 환경을 구성해보세요!

반응형