Node.js
typescript 내 jest 적용 중 import 에러 수정 (feat: esModuleInterop)
피리음
2023. 2. 14. 14:00
TypeError: Cannot read property 'config' of undefined
2 | import dotenv from 'dotenv';
> 3 | dotenv.config({
| ^
내 프로젝트에 jest를 적용하려 했고 빌드 중 위와 같이 에러가 발생했다.
검색 결과, tsconfig.json의 설정에서 esModuleInterop 를 true로 수정하면 정상적으로 동작했다.
왜 esModuleInterop를 true로 바꿔주면 정상적으로 동작할까?
이는 다음과 같은 모듈과 관련이 있었다.
- CommonJS/AMD/UMD modules
- ES6 modules
자바스크립트의 import 문법은 모듈마다 서로 상이한 부분이 있었다.
기본적으로 빌드 시 ES6 modules 형식으로 처리하며, 만약 기존 코드가 CommonJS 등의 모듈 형식 (import, required) 문법으로 있다면 ES6 modules 형식에 호환되게끔 코드를 변경하는 작업이 필요했다.tsconfig.json에서 esModuleInterop 를 true로 바꿔주면 이 작업이 자동으로 처리되었다.
보다 상세한 내용은 아래의 링크를 참조: