TypeScript TSConfig 가이드
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
- target: ECMAScript 대상 버전을 지정한다. 타입스크립트를 어떤 버전의 자바스크립트로 변환시킬지 설정.
- lib: 컴파일에 포함할 라이브러리 지정. 예를 들면 target으로는 “es5” 지만 커스텀하게 컴파일하고 싶다면 위에서처럼 배열 안에 추가할 수 있다.
- allowJs: JavaScript 파일을 컴파일할 수 있도록 허용
- skipLibCheck: 모든 선언 파일(’.d.ts’)의 유형 확인을 건너뛴다. 이는 컴파일 시간을 크게 줄일 수 있다.
- strict: 모든 엄격한 유형 확인 옵션 (’use strict’)을 활성화한다.
- forceConsistentCashingInFileNames: 가져올 파일의 경우 일관된 대소문자를 갖도록 한다. 예를 들어 파일 이름이 ‘somefile.ts’인 경우에도 ‘SomeFile.ts’를 가져오면 오류가 발생한다.
- noEmit: 컴파일 중에 출력 파일 생성을 비활성화 시킨다.
.
.
.
- plugins: TypeScript 컴파일러에서 사용할 플러그인을 지정한다. 여기서는 “next”라는 플러그인을 사용하고 있으며, 이는 Next.js 프로젝트에 특화된 것일 수 있다.
- paths: 사용자 정의 모듈 해결을 허용한다. 예를 들어 ‘@/’은 ‘src/’ 디렉토리 내의 파일로 해결된다.
- include: 컴파일에 포함할 파일을 지정한다. 여기서는 TypeScript 및 TypeScript React 파일 뿐만 아니라 ‘.next/types/’ 내의 TypeScript 파일도 포함한다.
- exclude: 컴파일에서 제외할 파일을 지정한다. 보통 ‘node_modules’ 디렉토리 같은 써드파티 라이브러리는 컴파일 대상에서 제외시키는 편이다.