NestJS 기본 설치 시 tsconfig.json 옵션 알아보기

gclee·2024년 10월 16일
0

NestJS

목록 보기
1/4
post-thumbnail

NestJS를 설치하면 프로젝트 루트에 tsconfig.jsontsconfig.build.json 파일이 생성됩니다. 이 파일들은 TypeScript 컴파일러의 설정을 정의하며, 프로젝트의 빌드 및 개발 환경을 구성하는 데 중요한 역할을 합니다.

tsconfig.json 파일이란?

tsconfig.json은 TypeScript 컴파일러(tsc)에게 프로젝트를 어떻게 컴파일할지 지시하는 설정 파일입니다. 이 파일을 통해 컴파일 대상 파일, 출력 디렉토리, 사용하고자 하는 ECMAScript 버전 등을 지정할 수 있습니다.

기본 tsconfig.json 내용

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "ES2021",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "skipLibCheck": true,
    "strictNullChecks": false,
    "noImplicitAny": false,
    "strictBindCallApply": false,
    "forceConsistentCasingInFileNames": false,
    "noFallthroughCasesInSwitch": false}
}

각 옵션의 의미

  • module: "commonjs"
    • 모듈 시스템을 지정합니다. Node.js 환경에서는 commonjs를 사용합니다.
  • declaration: true
    • 타입 선언 파일(.d.ts)을 생성합니다.
  • removeComments: true
    • 컴파일된 JavaScript 파일에서 주석을 제거합니다.
  • emitDecoratorMetadata: true
    • 데코레이터를 사용할 때 타입 정보를 메타데이터로 출력합니다.
  • experimentalDecorators: true
    • 실험적인 데코레이터 기능을 활성화합니다.
  • allowSyntheticDefaultImports: true
    • default export가 없는 모듈에서 import default 구문을 사용할 수 있게 합니다.
  • target: "ES2021"
    • 컴파일된 JavaScript의 대상 ECMAScript 버전을 지정합니다.
  • sourceMap: true
    • 소스 맵 파일을 생성하여 디버깅을 용이하게 합니다.
  • outDir: "./dist"
    • 컴파일된 파일의 출력 디렉토리를 지정합니다.
  • baseUrl: "./"
    • 모듈 해석을 위한 기본 경로를 설정합니다.
  • incremental: true
    • 증분 컴파일을 활성화하여 컴파일 시간을 단축합니다.
  • skipLibCheck: true
    • node_modules 내부의 타입 선언 파일 검사를 건너뜁니다.
  • strictNullChecks: false
    • nullundefined에 대한 엄격한 검사를 비활성화합니다.
  • noImplicitAny: false
    • 타입이 암시적으로 any로 추론되는 것을 허용합니다.
  • strictBindCallApply: false
    • bind, call, apply 메서드에 대한 엄격한 검사를 비활성화합니다.
  • forceConsistentCasingInFileNames: false
    • 파일 이름의 대소문자 일관성 검사를 비활성화합니다.
  • noFallthroughCasesInSwitch: false
    • switch 문에서 case가 누락되는 것을 허용합니다.

tsconfig.build.json 파일이란?

tsconfig.build.json은 빌드 시에만 사용되는 설정을 정의합니다. 일반적으로 테스트 파일이나 node_modules 디렉토리를 제외하고 빌드할 때 사용합니다.

기본 tsconfig.build.json 내용

{
  "extends": "./tsconfig.json",
  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
}
  • extends: "./tsconfig.json"
    • 기본 설정을 tsconfig.json에서 가져옵니다.
  • exclude
    • 빌드 시 제외할 파일이나 디렉토리를 지정합니다.

추가로 알아두면 좋은 옵션들

  • strict: true
    • TypeScript의 모든 엄격한 타입 검사를 활성화합니다.
  • esModuleInterop: true
    • CommonJS와 ES Modules 간의 호환성을 개선합니다.
  • paths
    • 모듈 경로 별칭을 설정할 수 있습니다.
  • lib
    • 사용할 라이브러리의 목록을 지정합니다. 예: ["ES2021", "DOM"]
  • resolveJsonModule: true
    • .json 파일을 import할 수 있게 합니다.

0개의 댓글