저장을 습관화
NestJS - tsconfig.json의 "esModuleInterop" 옵션 본문
메모...
tsconfig.json에 아래와 같이 "esModuleInterop": true 옵션을 추가한다.
{
"compilerOptions": {
"esModuleInterop": true
}
}
타입스크립트 컴파일러는 기본적으로 CommonJS의 exports, require 형태의 코드를 생성한다.
이 코드를 ES6 코드 베이스로 가져올때 문제가 발생하는데
esModuleInterop : true 옵션을 줌으로써 commonJS 모듈과 ES6 모듈을 서로 호환되게끔 해줄 수 있다.
예를들어..
분명히 import한 라이브러리가 undefined 등의 에러가 발생하는 것을 방지한다거나
모든 라이브러리(*)를 가져올때 아래와 같이 작성던 것을
import * as react from 'react'
아래 처럼 `* as` 구문을 생략하기도 한다..
import react from 'react'
구글 검색해보면 이 옵션으로 에러를 잡았다는 글들이 많으니 기억해두도록 하자
그렇다고 이 옵션을 항상 켜두는 것도 좋지는 않은 듯 하다
이미 잘 진행 중인 프로젝트에서 esModuleInterop 옵션을 true로 수정하니 에러가 발생하는 경우도 있다고..
애당초 디폴트가 false인 이유가 있겠지만 아직은 모르겠다.. 더 공부하자
'공부 > node.js' 카테고리의 다른 글
NestJS - 인터셉터와 AOP (0) | 2023.11.09 |
---|---|
NestJS - DTO를 인터페이스가 아닌 클래스로 선언하는 이유 (0) | 2023.11.06 |
NestJS - hot reload (0) | 2023.11.04 |
NestJS - socket.broadcast.emit() 브로드캐스팅 방식 (0) | 2023.10.20 |
NestJS - 네임스페이스와 생명주기(Lifecycle) 메모 (0) | 2023.10.19 |