Skip to content

tsconfig exclude는 extends 시 병합이 아니라 교체다

tsconfig.build.json이 자체 exclude 배열을 정의하면 extends한 부모의 exclude를 통째로 덮어쓴다. files·include·exclude는 배열 병합 없이 자식 값이 이기는 필드이고, compilerOptions만 키 단위로 병합된다. 부모에 넣은 exclude가 한 번도 적용된 적 없어도 아무 경고가 없다.

  • 맥락: pre-commit tsc가 30초 걸리는 원인을 파다가, 2024-11에 넣은 i18next.d.ts exclude가 한 번도 적용된 적 없었다는 걸 발견
  • 처음엔: i18n 타입이 무거운 게 문제라고 봤다. 실제로는 그걸 빼려던 설정이 죽어 있었던 것
Edit this page
최근 수정 시각 10/4/2026