컴파일러 옵션이란?
- 얼마나 엄격하게 타입 오류를 검사할 것인가?
- 자바스크립트 코드의 버전은 어떻게 할 것인가?
- ... 등등
컴파일러 옵션은 Node.js 패키지 단위(프로젝트 단위)로 설정할 수 있다.
TSC 도구 사용하여 컴파일러 옵션 파일을 자동으로 생성한다.
tsc --init
# Created a new tsconfig.json with:
# target: es2016
# module: commonjs
# strict: true
# esModuleInterop: true
# skipLibCheck: true
# forceConsistentCasingInFileNames: true
tsconfig.json 파일을 생성한다.tsconfig.json 파일을 생성한 후, 필요한 옵션을 직접 설정한다.
{
"compilerOptions": {
"skipLibCheck": true, // 타입 정의 파일의 타입 검사를 생략하는 옵션
"target": "ESNext", // JavaScript의 최신 버전
"module": "ESNext", // ES Module 모듈 시스템
"outDir": "dist",
"strict": false,
"moduleDetection": "force"
},
"include": ["src"]
}
include.ts 파일들의 범위와 위치를 알려주는 옵션"include": ["src"]으로 설정하면,src 디렉토리 하위의 모든 파일을 컴파일한다.target"compilerOptions": {} 항목 안에 설정해야 한다."compilerOptions" : TypeScript를 JavaScript로 변환하는 과정이나, Type 검사 등 아주 상세한 옵션을 설정하는 항목"target": "ES5"로 설정하면, JavaScript의 ES5 버전으로 컴파일 된다.module"compilerOptions": {} 항목 안에 설정해야 한다."module": "CommonJS로 설정하면, 컴파일 시 CommonJS의 모듈 시스템으로 변환된다.outDir"compilerOptions": {} 항목 안에 설정해야 한다."outDir": "dist"로 설정하면, 컴파일 결과가 dist 디렉토리 안에 생성된다.strict"compilerOptions": {} 항목 안에 설정해야 한다."strict": true로 설정하면, strict 모드가 활성화된다.strict 모드로 인해 오류가 발생한다.moduleDetection"compilerOptions": {} 항목 안에 설정해야 한다."moduleDetection": "force"로 설정하면, export {} (모듈 시스템 코드)를 자동으로 추가해준다.