React Testing Library Tutorial을 읽다가 axios를 import 하는데 에러가 발생하였다. 에러가 왜 발생하였을까? #5101을 읽다보니.... 최근에 axios가 Node에서 환경이 실행되지 않을 때는 commonJS가 아닌 ES Module로 빌드되기 때문이란다.
For context: Problem seem to be that Axios is now built as ES Module instead of CommonJs when not run in Node. Problem with Jest is that it runs code in Node, but application is built for web-clients.
This is why telling Jest to transform Axios works.
근데 궁금한게.. Jest는 분명 코드를 node 환경으로 실행을 시킬텐데, application 이 web-client의 환경을 기준으로 빌드가 되었다는 게 중요한가? 잠깐만 궁금한게... Jest가 node 환경으로 코드를 다 실행시켰으면 import 등이 자동으로 다 require로 바뀌어서 처리가 되었을 것 같은데, axios 자체 내에서 실행 환경을 다른 것을 기준으로 참조하는 것인지? 궁금하다.
아시는 분 있으면 지식 공유좀 부탁드려요...! ㅎㅎ
P.S: 추가로 CommonJS와 ES Module의 차이점이 뭔지 한 번 살펴보아야 겠다.