코딩과로그
typescript 내 jest 적용 중 import 에러 수정 (feat: esModuleInterop) 본문
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로 바꿔주면 이 작업이 자동으로 처리되었다.
보다 상세한 내용은 아래의 링크를 참조:
'Node.js' 카테고리의 다른 글
nest.js에서는 DTO를 정의할 때 interface 보단 class를 권장한다. (0) | 2023.03.06 |
---|---|
https 서버를 배포해보자 (feat: 도메인 설정, express 서버 기준) (0) | 2023.02.06 |
라우터 포트포워딩을 통한 서버 배포 (0) | 2023.02.06 |
[프로젝트 수정사항 내용] 데드락 수정 (0) | 2023.02.05 |
[프로젝트 변경사항 기록] DTO class에 데코레이터 적용 (0) | 2023.02.02 |