증분 컴파일 (Increamental Compilation)
- 타입스크립트의 컴파일러가 이전 컴파일의 결과를 활용하여 변경된 파일만 다시 컴파일 하는 방식
- 전체 프로젝트를 매번 처음부터 다시 컴파일하는 것 보다 빠르게 컴파일 가능.
- 해당 설정을 통해 빌드 시간 단축 가능
작동 방식
- 파일 상태를 저장한다.
- 컴파일러는 이전 컴파일 상태를 디스크에 저장한다.
.tsbuildinfo
에 저장된다.
- 이 파일에는 컴파일된 파일들, 각 파일의 의존성, 파일 해시 등 변경된 부분을 감지하기 위해 필요한 정보가 저장된다.
- 변경을 감지한다.
- 다음 컴파일 시, 컴파일러는 이 정보를 사용하여 어떤 파일이 변경되었는지, 그리고 어떤 파일을 다시 컴파일해야하는지를 결정한다.
- 변경되지 않은 파일들은 다시 컴파일하지 않으므로 시간이 절약된다.
단점
- 추가 저장 공간이 필요함, 즉 메모리 효율성이 떨어짐
- 빌드 정보 파일 관리
- tsbuildinfo 파일이 손상되거나 삭제되면 컴파일러는 증분 정보를 잃어버리고 전체 컴파일이 필요함
- 이걸 버전관리에 포함시킬것인지 결정 필요 (보통은 포함하지 않음)
- 호환성 문제
- 일부 빌드 도구 혹은 플러그인과 호환성 문제가 있을 수 있다.
- 복잡한 빌드 파이프라인에서는 어려움이 따름
- 의존성 문제
- 증분 컴파일은 파일 간의 의존성 관계를 추적한다.
- 만약 의존성 관리가 제대로 되지 않으면, 예상치 못한 컴파일 문제가 발생 할 수 있다.
- 잘못된 의존성 추적으로인해 변경사항이 제대로 반영되지 않을 수 있다.