{
"compilerOptions": {
/* basic options */
"target": "es6",
"module": "commonjs",
"lib": [
// 이렇게 lib를 세팅하면 JavaScript의 기본 기능들을 사용할 수 있다.
// 이 네가지 옵션이 target을 es6로 했을 때 lib의 default 옵션이다. -> 안 쓰는것과 똑같다
// (lib이 비활성화 되었을때 default로 설정되어 있는 것들)
"dom",
"es6",
"dom.iterable",
"scripthost"
],
// "allowJs": true, // .ts가 아니어도 타입스크립트가 자바스크립트로 컴파일 함
// "checkJs": true, // 컴파일 하지 않지만 syntax를 확인해서 potential error를 알려준다 -> TS 쓰기는 싫지만 TS의 기능을 사용하고 싶을 때 사용
// "jsx": "preserve", // ReactJS 쓸 때 사용
// "declaration": true, // 라이브러리 만들 때 사용 .d.ts 파일
// "declarationMap": true,
// "sourceMap": true, // 디버깅과 개발할 때 도움을 준다. 디렉토리에 .map 파일 생성
// "outFile": "./",
// "outDir": "./",
// "rootDir": "./",
// "composite": true,
// "removeComments": true,
// "noEmit": true,
// "importHelpers": true,
// "downlevelIteration": true,
// "isolatedModules": true,
// "noEmitOnError": false,
}
}
compilerOptions
에서 sourceMap
옵션을 설정하고 터미널에 tsc
를 실행하면 디렉토리에 .map
파일이 생성된다프로젝트의 규모가 커질 수록 파일의 구조가 잘 정리 되어야 한다. (즉, 모두 root 폴더에 위치하면 안된다!)
dist 와 src 폴더로 프로젝트 파일 구조를 관리한다.
- dist 폴더 → output이 담겨있는 파일 ⇒ .js 파일들
- src 폴더 → input이 담겨있는 파일 ⇒ .ts 파일들
타입스크립트 파일을 컴파일하면 같은 폴더 내에 .js 파일이 생성된다.
compilerOptions
에서 outDir
옵션을 설정하면 .js 파일이 생성되는 위치를 지정할 수 있다.
"outDir": "./dist", // 컴파일 된 js 파일이 dist 폴더에 생성된다.
(참고) 만약 src 폴더 내에 하위폴더에 있는 .ts 파일을 컴파일 했다면, dist 폴더 내에 같은 이름의 하위폴더가 생성되고 그 안에 .js 파일이 생성된다.
outDir 옵션을 설정했다면 index.html의 script 태그를 수정해야 한다.
<script src="dist/app.js" defer></script>
<script src="dist/analytics.js" defer></script>
만약 rootDir를 설정하지 않은 채로 user 폴더(dist, src와 같은 위치) 안에 있는 .ts 파일을 컴파일 하게 된다면, 컴파일 후 dist 폴더 내에 user 폴더 뿐 만아니라 src 폴더도 생성된다.
이런 경우를 방지하기 위해 rootDir를 “./src”
로 설정한다.
"rootDir": "./src",
.ts 파일내에 에러가 있어도 .js 로 컴파일이 되는 경우가 있다.
false로 설정할 경우 → .ts파일에 에러가 있어도 컴파일한 .js파일을 생성한다.
true로 설정할 경우 → .ts파일에 에러가 있으면 .js파일을 생성하지 않는다. ⇒ 에러를 최소화하기 위해서는 이 옵션이 좋다.