tsconfig.json

tsconfig.json

디렉토리안에 tsconfig.json 파일이 있다면 그 디렉토리가 타입스크립트 프로젝트의 루트를 의미한다.

tsconfig.json 파일은 프로젝트를 컴파일하는데 필요한 루트 파일 및 컴파일 옵션을 지정합니다.

만약 'tsc'를 실행하는데 인풋 파일이 없다면 컴파일러는 tsconfig.json 파일을 찾을때까지 현재 디렉토리에서 시작해서 부모 디렉토리까지 올라갑니다.

만약 'tsc'를 실핼하는데 인풋 파일이 없고 '--project [경로]' 커맨드 라인 옵션을 지정한다면 tsconfig.json 파일을 포함한 디렉토리 주소를 제공할 수 있습니다. 또는 설정 옵션을 포한한 유효한 json 경로으로도 제공할 수 있습니다.

'files'는 상대 또는 절대 경로의 리스트를 받습니다.

'include', 'exclude'는 glob 파일 패턴 리스트를받습니다.

지원하는 glob 와일드카드: "*" : 0 또는 하나 이상의 문자에 매치합니다.(디렉토리 구분자 제외) "?" : 그 어떤 하나의 문자와 일치(디렉토리 구분자 제외) "**" ; 재귀적으로 그 어떤 서브디렉토리와 매치합니다.

"", "."와 같은 glob 패턴이 있다면 지원하는 확장자 파일만 포함합니다.(기본적으로 .ts, .tsx, .d.ts 만약 allowJs가 true라면 .js, .jsx도 포함)

만약 'files', 'include'를 명시하지 않으면 컴파일러는 기본적으로 'exclude'를 제외한 현재 디렉토리 그리고 서브디렉토리 안에 있는 모든 타입스크립트 파일을 포함합니다.

만약 'allowJs'가 true라면 .js, .jsx파일 또한 포함합니다.

만약 'files'와 'include'가 명시되어있다면 두 속성에 포함된 파일을 포함합니다.

'exclude' 속성이 명시되지 않으면 'outDir'을 사용한 디렉토리 파일들을 제외됩니다.

'include'을 사용해서 포함된 파일들은 'exclude'로 필터링을 할 수 있습니다.

그러나 'files'로 명시된 파일들을 'exclude'와 상관없이 항상 포함이 됩니다.

'exclude' 속성은 명시하지 않으면 기본적으로 'node_modules', 'bower_components', 'jspm_packages', 'outDir'로 명시된 디렉토리를 제외합니다.

'files', 'include'에 포함된 파일을 참조하는 모든 파일들 또한 포함됩니다.

컴파일러는 아웃풋이 될 파일이 있다면 아웃풋이 가능한 다른 나머지 파일들을 포함하지 않습니다. e.g. index.ts가 인풋이라면 index.d.ts, index.js 파일을 제외가 됩니다.

tsconfig.json 파일을 완전히 비어도 컴파일러는 기본적인 컴파일러 옵션으로 모든 파일을 포함합니다.

커맨드 라인으로 명시된 컴파일 옵션들은 tsconfig.json 파일 옵션들을 오버라이드 합니다.

target

트랜스파일된 결과물의 버전을 정의하는 것입니다.

downlevelIteration

target이 es3 또는 es5일때 for of, spread, destructuring의 이터러블을 모든 지원을 제공합니다.

sourceMap

소스맵은 빌드한 파일과 원본 파일을 서로 연결시켜주는 기능입니다.

빌드한 파일에서 디버깅을 하기위해 소스 맵을 이용해 빌드된 파일의 특정 부분이 원본 소스의 어떤 부분인지 확인하는 것입니다.

esModuleInterop

stackoverflow