Cannot find module 'msw/node' 에러 해결
NEXT.js 14버전 환경에서 jest를 사용한 테스트 환경 구축중에
api요청등의 문제를 모킹서버로 해결하기 위해
msw설치후 테스트를 돌렸는데
msw/node 를 찾지 못한다는 에러가 발생을 하였다.
분명 패키지제이슨엔 설치가 되어 있는데도 오류가 발생하고 있어
chatGpt에 물어봐도 다시 설치하라는 말만 하고 있어 다른 방법을 찾아 보던중
https://github.com/mswjs/msw/issues/1786
이곳의 글을 확인 하였고 코멘트에서 해결방법을 찾았다.
jest.config.ts 파일의 설정중에
이부분을 추가 하면 된다.
에러가 난 이유를 설명한걸 해석해 보자면
JSDOM이 내보내기 조건을 강제하기 때문입니다 browser.
즉, JSDOM은 "타사 패키지가 browser필드를 내보내는 경우 해당 필드를 사용하십시오"라고 말합니다.
그것이 기본값이고 다소 위험한 기본값입니다. 왜? JSDOM은 여전히 Node.js에서 실행되기 때문입니다 .
게다가 JSDOM은 설계상 100% 브라우저 호환성을 가질 수 없으므로 browser내보내기 조건을 강제하면
MSW와 같이 다양한 환경에 대해 다양한 코드를 제공하는 패키지로 작업할 때 테스트가 필요 이상으로 실패하게 됩니다.
이렇게(위와 같은 설정을) 하면 JSDOM이 올바른 동작인 node(또는 ) 내보내기 조건을 사용하게 됩니다 .default
이번 변경 이후 다른 수입 관련 문제가 발생하는 경우 관련이 없으므로 별도로 처리해야 합니다.
모든 사람이 따를 수 있도록 이 권장 사항을 마이그레이션 가이드에도 추가합니다.
라고 한다.
'Yame Programmer > react.js' 카테고리의 다른 글
[react.js] 세븐나이츠2 영웅뽑기 시뮬레이터 REACT 버전 (0) | 2021.02.21 |
---|---|
[React.js] cannot resolve 'react-transition-group' 오류 해결 방법 (0) | 2017.05.25 |
[react.js] react-router v4 browserHistory.push 오류 해결 방법 (0) | 2017.04.19 |
[react.js] 함수형 컴포넌트 (0) | 2017.02.27 |
[react.js] react Component Life Cycle API (0) | 2017.02.27 |