How We Coding

tsconfig.json 을 통해 컴파일 옵션을 설정할 수 있다.


- 컴파일 방법

$ tsp --p tsconfig.json


{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}


"target": "es6" // 결과물 ECMAScript 버전 설정

"module": "commons" // 모듈설정

"moduleResolution": "node" // 모듈 해석방식 설정

"sourceMap": true // 소스맵(*.map) 파일 생성 여부    

"emitDecoratorMetadata": true   // 

"experimentalDecorators": true   // ES Decorator 에 대한 실험적 기능 사용 여부

"removeComments": false // 주석 삭제

"noImplicitAny": false // 




이러한 옵션들이 있다고 한다.. (https://vomvoru.github.io/blog/tsconfig-compiler-options-kr/)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
{
  "include": [
      "src/**/*"
  ],
  "exclude": [
      "node_modules"
  ],
  "compilerOptions": {
    "target""ES2017"// 결과물 ECMAScript 버전 설정
 
    /////////// module ///////////
    "module""CommonJS"// 모듈 설정
    "moduleResolution""node"// 모듈 (검색)해석 방식 설정
    "allowSyntheticDefaultImports"false// export default 를 export 한 값들을 가지는 객체로 설정
    "forceConsistentCasingInFileNames"false// 파일명에 대소문자 구분하지 않아도 되는 기능 사용 여부
    // 직역: 파일 이름에 일관된 casing 강제 적용
 
    /////////// path ///////////
    "baseUrl""."// Non-relativ 모듈 혹은 paths 옵션의 기준 디렉토리
    "paths": { // baseUrl 옵션을 기준디렉토리로 불러올 모듈의 위치 설정이 가능
      "*": ["*"]
    }, 
    // "rootDirs": [ ], // 가상 디덱토리를 설정
    "rootDir""./"// 입력파일의 rootDir 설정
    // outDir옵션을 사용할때만 사용
    "outDir""dest"// 출력할 디덱토리
    // @TODO 테스트 필요
    // "outFile": "", // 단일파일로 출력시 파일명
    // @TODO 테스트 필요
 
    /////////// declaration ///////////
    "declaration"false// .d.ts 파일의 생성 여부
    "declarationDir"""// .d.ts 파일이 생성되는 디렉토리 설정
    
    /////////// log ///////////
    "diagnostics"false// @TODO 테스트 필요
    // Show diagnostic information.
    "traceResolution"false// 모듈 검색에 대한 로그메세지 출력 여부
    "listEmittedFiles"false// 컴파일된 결과 파일들 이름을 터미널에 출력
    "listFiles"true// 컴파일된 파일들 이름을 터미널에 출력
    "locale""ko"// 에러메세지 출력 언어 설정
    "pretty"true// 에러 메시지를 예쁘게 설정
    // @TODO 테스트 필요
 
    /////////// React ///////////
    // "jsx": "preserve", // jsx 지원
    // "jsxFactory": "React.createElement", // jsx 팩토리 함수 설정,
 
    /////////// JS ///////////
    // "allowJs": false, // 자바스크립트 파일 컴파일 허용 여부. 
    // "checkJs": false, // allowJs 옵션이 true여서 js파일 모듈을 사용시 js파일의 오류 검사 여부
    // "maxNodeModuleJsDepth": 0, // js 모듈을 검색할 최대 깊이
    
    /////////// Lint ///////////
    "strict"true// 모든 엄격한 타입 검사 옵션을 활성화
    // noImplicitAny, noImplicitThis, alwaysStrict, strictNullChecks, strictFunctionTypes
    "allowUnreachableCode"false// 도달 불가능한 코드에 대한 허용 여부.
    "allowUnusedLabels"false// 사용하지 않는 라벨에 대한 허용 여부
    "noFallthroughCasesInSwitch"true// 잘못 적혔다고 판단되는 switch문에 대한 에러 발생
    "noImplicitReturns"true// 함수의 모든 경로가 값을 반환하지 않으면 에러 발생
    "suppressExcessPropertyErrors"false// 객체 리터럴에 대한 초과 속성 검사 억제 여부
    // @TODO 부가설명 필요
    "suppressImplicitAnyIndexErrors"false// 인덱스 서명이없는 개체를 인덱싱하는 경우 --noImplicitAny 오류 억제여부
    // 자세한 내용은 문제 #1232를 참조
    // @TODO 부가설명 필요
    "noStrictGenericChecks"true// 함수에서 generic의 엄격한 검사 해제 여부
    "noUnusedLocals"true// 사용안된 지역변수에 대한 오류 보고 여부
    "noUnusedParameters"true,  // 사용안된 파라미터에 대한 오류 보고 여부
 
    /////////// edit outfile ///////////
    "charset""utf8"// 입력파일의 문자집합 형식
    "emitBOM"false,// 출력 파일의 시작 부분에 UTF-8 바이트 순서표 (BOM) 추가여부
    // "newLine": "lf", // end of line sequence 설정
    "removeComments"true// 주석 삭제
    // @TODO '/*!' 주석 테스트 필요
    "disableSizeLimit"false// @TODO 테스트 필요
    // Disable size limitation on JavaScript project.
    "noEmit"false// 결과파일을 저장하지 않음
    // @TODO 테스트 필요
    "noEmitOnError"false// 에러 발생시 결과파일을 저장하지 않음
    "preserveConstEnums"false// const enum형 선언을 지우지 않을건지 여부
    
    
    /////////// more spec ///////////
    "lib": [], // 컴파일에 포함될 라이브러리 파일 목록
    "downlevelIteration"false// target이 ES3 및 ES5 일때도 for..of, spread, destructuring 문법 지원
    "experimentalDecorators"true// ES Decorator에 대한 실험적 기능 사용 여부
    "stripInternal"false// /** @ internal * /JSDoc annotation이 있는 코드에 대한 선언을 내 보내지 않을지 여부
    // @TODO 부가설명 필요
 
    /////////// optimization ///////////
    "importHelpers"true// tslib에서 helpers (e.g. __extends, __rest, etc..)를 가져온다.
 
    /////////// sourceMap ///////////
    "inlineSourceMap"false// 소스맵을 결과코드에 추가
    // @TODO 테스트 필요
    "mapRoot""./map"// "source map 파일을 저장할 root 디렉토리 지정
    // 지정하지 않으면 변환된 파일과 동일한 디렉토리에 저장된다.
    "sourceMap"true// 소스맵(*.map) 파일 생성 여부
    // "sourceRoot": "", // 디버거가 알아야될 .ts파일 root 위치. 소스맵(*.map)에 적용된다.
    // @TODO 테스트 필요
    "inlineSources"false// 변환전 파일 .ts 코드를 결과코드에 추가
    // @TODO 테스트 필요
 
    /////////// etc ///////////
    
    "noImplicitUseStrict"false// @TODO 테스트 필요
    
    "noLib"false// 기본 라이브러리(lib.d.ts)를 가져오지 않는다.
    // @TODO 옵션 사용처
    
    "plugins": [ ], // 편집환경을 더 좋게 변경하기 위한 플러그인 기능
    
    "preserveSymlinks"false// Symlink파일에서 다른 모듈을 import시 기준경로를 Symlink 경로로 설정
    // 기존에는 Symlink파일에서 다른 모듈을 import시
    // Symlink파일의 실제 경로에서 모듈을 가져왔다.
    // https://nodejs.org/api/cli.html#cli_preserve_symlinks
    
    "skipLibCheck"false// 모든 선언파일(*.d.ts)의 유형검사를 건너뛸지 여부
    
    "watch"false// 파일 변경시 컴파일
    
    /////////// ??? ///////////
    "isolatedModules"false// @TODO 뭘까...
    // https://github.com/Microsoft/TypeScript/issues/2499
    "emitDecoratorMetadata"false// @TODO 테스트 필요
    // Emit design-type metadata for decorated declarations in source. See issue #2577 for details.
    "noResolve"false // @TODO 테스트 필요
  }
}
cs





'H6 > backend (Node.js, tsc)' 카테고리의 다른 글

<7> REST API & CRUD  (0) 2018.01.31
<5> node-mysql (Typescript)  (0) 2018.01.22
<4> MySQL & node-mysql  (0) 2018.01.22
<3> 에러처리..  (0) 2018.01.22
<2> app.ts 및 server.ts 만들기  (0) 2018.01.22