개발 기록/의존성 오류 모음
Jest + TypeScript 환경에서 의존성 충돌 발생 시 대처법
JeongPark
2025. 4. 24. 17:45
728x90
Jest, ts-jest, TypeScript 의존성 충돌 해결 가이드 (버전 호환 완벽 정리)
Jest와 TypeScript를 함께 사용할 때 흔히 겪는 문제가 바로 의존성 충돌입니다.
특히 ts-jest
, jest
, typescript
, @types/jest
버전 간의 호환성 문제가 자주 발생합니다.
이 포스트에서는 이러한 충돌 원인과 해결 방법을 실무 중심으로 정리해보겠습니다.
문제 요약
ts-jest
와typescript
버전 불일치- 예:
ts-jest@26.4.4
는typescript@5.x
와 호환되지 않음 - 해결:
ts-jest@28.x
이상으로 업그레이드 필요
- 예:
jest
와ts-jest
버전 간 호환성 문제jest@26.x
에 맞는ts-jest@26.x
사용 중이라면,typescript@5.x
지원 불가- 해결:
jest
와ts-jest
모두 최신 버전으로 맞춰야 함
@types/jest
와jest
버전 불일치- 타입 정의 패키지도
jest
버전에 맞춰야 함 - 예:
jest@28.x
사용 시@types/jest
도 동일 버전군으로 업데이트
- 타입 정의 패키지도
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
이 가이드를 참고하여 안정적인 테스트 환경을 구성해보세요!
반응형