Yarn 1 환경에서 Jest와 Enzyme 사용 시 Cheerio 모듈 오류 해결 가이드

🤖 AI 추천

Yarn 1을 사용하여 Jest와 Enzyme으로 프론트엔드 테스트를 수행하는 개발자에게 유용한 가이드입니다. 특히 라이브러리 간의 버전 충돌로 인해 발생하는 문제 해결 경험을 쌓고 싶은 미들 레벨 이상의 개발자에게 추천합니다.

🔖 주요 키워드

Yarn 1 환경에서 Jest와 Enzyme 사용 시 Cheerio 모듈 오류 해결 가이드

핵심 기술

이 가이드라인은 Yarn 1 패키지 매니저를 사용하는 프로젝트에서 Jest 및 Enzyme 라이브러리 사용 시 발생하는 'Cannot find module 'cheerio/lib/utils'' 오류의 근본 원인인 Cheerio 모듈 버전 충돌을 해결하는 방법을 제시합니다.

기술적 세부사항

  • 문제 발생 시나리오: Yarn 1으로 관리되는 프로젝트에서 yarn test 실행 시 Jest가 Enzyme의 Cheerio 의존성을 찾지 못하여 테스트 실행이 실패합니다.
  • 오류 메시지: Cannot find module 'cheerio/lib/utils' from 'node_modules/enzyme/build/Utils.js'
  • 근본 원인: Enzyme 라이브러리는 특정 버전의 Cheerio (1.0.0-rc.3 이하)만 지원하지만, 프로젝트에 더 최신 버전의 Cheerio (1.0.0-rc.3 초과)가 설치되어 의존성 충돌이 발생합니다.
  • 해결 방안: package.json 파일에 resolutions 필드를 추가하여 Enzyme이 사용할 Cheerio 버전을 명시적으로 1.0.0-rc.3으로 강제합니다.
    json "resolutions": { "enzyme/cheerio": "1.0.0-rc.3" }
  • 검증: resolutions 적용 전후 yarn.lock 파일을 비교하여 Cheerio의 실제 설치 버전을 확인하고, yarn test를 다시 실행하여 오류가 해결되었는지 검증합니다.
  • 추가 조치: node_modules 폴더를 삭제하고 yarn cache clean을 실행한 후 yarn install을 다시 실행하여 의존성을 재설치합니다.
  • Enzyme 의존성: Enzyme 설치 시 Cheerio는 자동으로 설치되는 의존성이므로, 별도로 devDependencies에 추가할 필요가 없습니다.

개발 임팩트

이 해결책을 통해 Jest와 Enzyme을 사용하는 개발 환경에서 발생할 수 있는 흔한 버전 충돌 문제를 효과적으로 해결할 수 있습니다. 이를 통해 테스트 실행의 안정성을 확보하고, 개발 생산성을 향상시킬 수 있습니다.

커뮤니티 반응

(제시된 내용에 구체적인 커뮤니티 반응 언급 없음)

📚 관련 자료