tsc CLI 옵션
tsc CLI 옵션 (Compiler Options)
tsc는 명령줄에서 바로 쓸 수 있는 도구예요. tsconfig.json을 기반으로 프로젝트를 컴파일할 수도 있고, 특정 파일만 지정해 컴파일할 수도 있어요. 이 문서에서는 명령줄에서 쓸 수 있는 모든 옵션을 빠짐없이 살펴볼게요.
CLI 사용하기 (Using the CLI)
tsc를 로컬에서 실행하면 가장 가까운 tsconfig.json이 정의하는 프로젝트를 컴파일하고, 원하는 파일들의 glob을 인자로 넘겨 TypeScript 파일 집합을 컴파일할 수도 있어요. 명령줄에서 입력 파일을 지정하면 tsconfig.json 파일은 무시됩니다.
# Run a compile based on a backwards look through the fs for a tsconfig.json
tsc
# Emit JS for just the index.ts with the compiler defaults
tsc index.ts
# Emit JS for any .ts files in the folder src, with the default settings
tsc src/*.ts
# Emit files referenced in with the compiler settings from tsconfig.production.json
tsc --project tsconfig.production.json
# Emit d.ts files for a js file with showing compiler options which are booleans
tsc index.js --declaration --emitDeclarationOnly
# Emit a single .js file from two files via compiler options which take string arguments
tsc app.ts util.ts --target esnext --outfile index.js
컴파일러 옵션 (Compiler Options)
tsconfig에서 컴파일러 옵션에 대한 더 자세한 정보를 찾고 있다면 TSConfig Reference를 확인하세요.
CLI 명령어 (CLI Commands)
| Flag | Type | |
|---|---|---|
--all |
|
|
|
모든 컴파일러 옵션을 보여줍니다. | ||
--help |
|
|
|
CLI에 대한 도움말 정보를 로컬에서 제공합니다. | ||
--ignoreConfig |
|
|
|
발견된 tsconfig를 무시하고, 명령줄 옵션과 파일로 빌드합니다. | ||
--init |
|
|
|
TypeScript 프로젝트를 초기화하고 tsconfig.json 파일을 만듭니다. | ||
--listFilesOnly |
|
|
|
컴파일에 포함된 파일들의 이름을 출력한 뒤 처리를 멈춥니다. | ||
--locale |
|
|
|
TypeScript가 내는 메시지의 언어를 설정합니다. 이는 출력(emit)에는 영향을 주지 않습니다. | ||
--project |
|
|
|
설정 파일의 경로, 또는 'tsconfig.json'이 있는 폴더의 경로가 주어진 프로젝트를 컴파일합니다. | ||
--showConfig |
|
|
|
빌드하는 대신 최종 설정을 출력합니다. | ||
--version |
|
|
|
컴파일러의 버전을 출력합니다. | ||
빌드 옵션 (Build Options)
| Flag | Type | |
|---|---|---|
--build |
|
|
|
하나 이상의 프로젝트와 그 의존성을, 오래된 경우 빌드합니다. | ||
--clean |
|
|
|
모든 프로젝트의 출력물을 삭제합니다. | ||
--dry |
|
|
|
무엇이 빌드될지 보여줍니다('--clean'과 함께 지정하면 무엇이 삭제될지도요). | ||
--force |
|
|
|
최신 상태로 보이는 프로젝트를 포함해 모든 프로젝트를 빌드합니다. | ||
--verbose |
|
|
|
자세한 로깅을 활성화합니다. | ||
Watch 옵션 (Watch Options)
| Flag | Type | |
|---|---|---|
--excludeDirectories |
|
|
|
감시(watch) 과정에서 디렉터리 목록을 제거합니다. | ||
--excludeFiles |
|
|
|
watch 모드의 처리에서 파일 목록을 제거합니다. | ||
--fallbackPolling |
|
|
|
시스템의 네이티브 파일 watcher가 소진되면 watcher가 어떤 방식을 사용할지 지정합니다. | ||
--synchronousWatchDirectory |
|
|
|
재귀적 감시를 기본 지원하지 않는 플랫폼에서 콜백을 동기적으로 호출하고 디렉터리 watcher의 상태를 갱신합니다. | ||
--watch |
|
|
|
입력 파일을 감시합니다. | ||
--watchDirectory |
|
|
|
재귀적 파일 감시 기능이 없는 시스템에서 디렉터리를 어떻게 감시할지 지정합니다. | ||
--watchFile |
|
|
|
TypeScript의 watch 모드가 어떻게 동작할지 지정합니다. | ||
컴파일러 플래그 (Compiler Flags)
| Flag | Type | Default |
|---|---|---|
--allowArbitraryExtensions |
|
|
|
선언 파일(declaration file)이 존재한다면 어떤 확장자의 파일도 가져오는 것을 활성화합니다. | ||
--allowImportingTsExtensions |
|
|
|
import가 TypeScript 파일 확장자를 포함하도록 허용합니다. | ||
--allowJs |
|
|
|
JavaScript 파일이 프로그램의 일부가 되도록 허용합니다. 이 파일들에서 에러를 얻으려면 | ||
--allowSyntheticDefaultImports |
|
|
|
모듈에 기본 export가 없을 때 'import x from y'를 허용합니다. | ||
--allowUmdGlobalAccess |
|
|
|
모듈에서 UMD 전역(globals)에 접근하는 것을 허용합니다. | ||
--allowUnreachableCode |
|
|
|
도달 불가능한 코드에 대한 에러 보고를 비활성화합니다. | ||
--allowUnusedLabels |
|
|
|
사용되지 않는 레이블에 대한 에러 보고를 비활성화합니다. | ||
--alwaysStrict |
|
|
|
'use strict'가 항상 출력되도록 합니다. | ||
--assumeChangesOnlyAffectDirectDependencies |
|
|
|
| ||
--baseUrl |
|
|
|
베어 스펙시파이어(bare specifier) 모듈 이름을 해석할 기준 디렉터리를 지정합니다. | ||
--charset |
|
|
|
더 이상 지원되지 않습니다. 초기 버전에서는 파일을 읽을 텍스트 인코딩을 수동으로 설정했습니다. | ||
--checkJs |
|
|
|
타입 검사되는 JavaScript 파일에서 에러 보고를 활성화합니다. | ||
--composite |
|
|
|
TypeScript 프로젝트가 프로젝트 참조(project references)와 함께 쓰일 수 있게 하는 제약을 활성화합니다. | ||
--customConditions |
|
|
|
import를 해석할 때 resolver 고유의 기본값에 추가로 설정할 조건들입니다. | ||
--declaration |
|
|
|
프로젝트의 TypeScript 및 JavaScript 파일로부터 .d.ts 파일을 생성합니다. | ||
--declarationDir |
|
|
|
생성된 선언 파일의 출력 디렉터리를 지정합니다. | ||
--declarationMap |
|
|
|
d.ts 파일용 소스맵(sourcemaps)을 생성합니다. | ||
--diagnostics |
|
|
|
빌드 후 컴파일러 성능 정보를 출력합니다. | ||
--disableReferencedProjectLoad |
|
|
|
TypeScript가 자동으로 로드하는 프로젝트의 수를 줄입니다. | ||
--disableSizeLimit |
|
|
|
TypeScript 언어 서버에서 JavaScript 파일의 전체 소스 코드 크기에 대한 20mb 제한을 제거합니다. | ||
--disableSolutionSearching |
|
|
|
편집 시 다중 프로젝트 참조 검사에서 프로젝트를 제외합니다. | ||
--disableSourceOfProjectReferenceRedirect |
|
|
|
복합(composite) 프로젝트를 참조할 때 선언 파일 대신 소스 파일을 선호하는 것을 비활성화합니다. | ||
--downlevelIteration |
|
|
|
반복(iteration)에 대해 더 규격을 준수하지만 장황하고 성능이 낮은 JavaScript를 출력합니다. | ||
--emitBOM |
|
|
|
출력 파일의 시작 부분에 UTF-8 바이트 오더 마크(BOM)를 출력합니다. | ||
--emitDeclarationOnly |
|
|
|
JavaScript 파일이 아닌 d.ts 파일만 출력합니다. | ||
--emitDecoratorMetadata |
|
|
|
소스 파일의 데코레이트된 선언에 대한 design-type 메타데이터를 출력합니다. | ||
--erasableSyntaxOnly |
|
|
|
ECMAScript의 일부가 아닌 런타임 구조를 허용하지 않습니다. | ||
--esModuleInterop |
|
|
|
CommonJS 모듈 가져오기 지원을 쉽게 하기 위해 추가 JavaScript를 출력합니다. 이는 타입 호환을 위해 | ||
--exactOptionalPropertyTypes |
|
|
|
선택적 프로퍼티 타입을 | ||
--experimentalDecorators |
|
|
|
TC39 stage 2 초안 데코레이터에 대한 실험적 지원을 활성화합니다. | ||
--explainFiles |
|
|
|
컴파일 중 읽은 파일과, 그 파일이 포함된 이유를 출력합니다. | ||
--extendedDiagnostics |
|
|
|
빌드 후 더 자세한 컴파일러 성능 정보를 출력합니다. | ||
--forceConsistentCasingInFileNames |
|
|
|
import의 대소문자가 올바른지 보장합니다. | ||
--generateCpuProfile |
|
|
|
디버깅을 위해 컴파일러 실행의 v8 CPU 프로파일을 출력합니다. | ||
--generateTrace |
|
|
|
이벤트 추적과 타입 목록을 생성합니다. | ||
--importHelpers |
|
|
|
파일별로 포함하는 대신, 프로젝트당 한 번 tslib에서 헬퍼 함수를 가져오는 것을 허용합니다. | ||
--importsNotUsedAsValues |
|
|
|
타입에만 사용되는 import에 대한 출력/검사 동작을 지정합니다. | ||
--incremental |
|
|
|
프로젝트의 증분 컴파일을 가능하게 하기 위해 .tsbuildinfo 파일을 저장합니다. | ||
--inlineSourceMap |
|
|
|
출력된 JavaScript 안에 소스맵 파일을 포함합니다. | ||
--inlineSources |
|
|
|
출력된 JavaScript 안의 소스맵에 소스 코드를 포함합니다. | ||
--isolatedDeclarations |
|
|
|
다른 도구가 선언 파일을 쉽게 생성할 수 있도록 export에 충분한 표기를 요구합니다. | ||
--isolatedModules |
|
|
|
각 파일이 다른 import에 의존하지 않고 안전하게 트랜스파일될 수 있도록 보장합니다. | ||
--jsx |
|
|
|
어떤 JSX 코드가 생성되는지 지정합니다. | ||
--jsxFactory |
|
|
|
React JSX 출력을 대상으로 할 때 사용할 JSX 팩토리 함수를 지정합니다. 예: 'React.createElement' 또는 'h'. | ||
--jsxFragmentFactory |
|
|
|
React JSX 출력을 대상으로 할 때 프래그먼트에 사용할 JSX Fragment 참조를 지정합니다. 예: 'React.Fragment' 또는 'Fragment'. | ||
--jsxImportSource |
|
|
|
| ||
--keyofStringsOnly |
|
|
|
keyof가 문자열, 숫자, 심볼이 아닌 오직 문자열만 반환하게 합니다. 레거시 옵션입니다. | ||
--lib |
|
|
|
대상 런타임 환경을 설명하는 번들 라이브러리 선언 파일 집합을 지정합니다. | ||
--libReplacement |
|
|
|
기본 | ||
--listEmittedFiles |
|
|
|
컴파일 후 출력된 파일들의 이름을 출력합니다. | ||
--listFiles |
|
|
|
컴파일 중 읽은 모든 파일을 출력합니다. | ||
--mapRoot |
|
|
|
디버거가 생성된 위치 대신 맵 파일을 찾을 위치를 지정합니다. | ||
--maxNodeModuleJsDepth |
|
|
|
| ||
--module |
|
|
|
어떤 모듈 코드가 생성되는지 지정합니다. | ||
--moduleDetection |
|
"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules. |
|
파일이 스크립트인지 모듈인지 감지하는 데 쓰는 방법을 지정합니다. | ||
--moduleResolution |
|
|
|
TypeScript가 주어진 모듈 스펙시파이어에서 파일을 어떻게 찾는지 지정합니다. | ||
--moduleSuffixes |
|
|
|
모듈을 해석할 때 검색할 파일 이름 접미사 목록입니다. | ||
--newLine |
|
|
|
파일 출력을 위한 줄바꿈 문자를 설정합니다. | ||
--noCheck |
|
|
|
전체 타입 검사를 비활성화합니다(오직 중요한 파싱과 출력 에러만 보고됩니다). | ||
--noEmit |
|
|
|
컴파일에서 파일 출력을 비활성화합니다. | ||
--noEmitHelpers |
|
|
|
컴파일 출력에서 | ||
--noEmitOnError |
|
|
|
타입 검사 에러가 보고되면 파일 출력을 비활성화합니다. | ||
--noErrorTruncation |
|
|
|
에러 메시지에서 타입을 잘라내는 것을 비활성화합니다. | ||
--noFallthroughCasesInSwitch |
|
|
|
switch문에서 빠져나가는(fallthrough) 경우에 대한 에러 보고를 활성화합니다. | ||
--noImplicitAny |
|
|
|
암시된 | ||
--noImplicitOverride |
|
|
|
파생 클래스에서 오버라이딩하는 멤버가 override 수식어로 표시되도록 보장합니다. | ||
--noImplicitReturns |
|
|
|
함수에서 명시적으로 반환하지 않는 코드 경로에 대한 에러 보고를 활성화합니다. | ||
--noImplicitThis |
|
|
|
| ||
--noImplicitUseStrict |
|
|
|
출력된 JavaScript 파일에 'use strict' 지시문을 추가하는 것을 비활성화합니다. | ||
--noLib |
|
|
|
기본 lib.d.ts를 포함한 라이브러리 파일을 전부 포함하는 것을 비활성화합니다. | ||
--noPropertyAccessFromIndexSignature |
|
|
|
인덱스 타입으로 선언된 키에 대해 인덱스 접근자 사용을 강제합니다. | ||
--noResolve |
|
|
|
| ||
--noStrictGenericChecks |
|
|
|
함수 타입에서 제네릭 시그니처의 엄격한 검사를 비활성화합니다. | ||
--noUncheckedIndexedAccess |
|
|
|
인덱스로 접근할 때 타입에 | ||
--noUncheckedSideEffectImports |
|
|
|
부수 효과(side effect) import를 검사합니다. | ||
--noUnusedLocals |
|
|
|
지역 변수가 읽히지 않을 때 에러 보고를 활성화합니다. | ||
--noUnusedParameters |
|
|
|
함수 파라미터가 읽히지 않을 때 에러를 냅니다. | ||
--out |
|
|
|
더 이상 사용되지 않는 설정입니다. 대신 | ||
--outDir |
|
|
|
모든 출력 파일을 위한 출력 폴더를 지정합니다. | ||
--outFile |
|
|
|
모든 출력을 하나의 JavaScript 파일로 묶는 파일을 지정합니다. | ||
--paths |
|
|
|
import를 추가 조회 위치로 다시 매핑하는 항목 집합을 지정합니다. | ||
--plugins |
|
|
|
포함할 언어 서비스 플러그인 목록을 지정합니다. | ||
--preserveConstEnums |
|
|
|
생성된 코드에서 | ||
--preserveSymlinks |
|
|
|
심볼릭 링크를 실제 경로(realpath)로 해석하는 것을 비활성화합니다. node의 같은 이름 플래그와 대응됩니다. | ||
--preserveValueImports |
|
|
|
그렇지 않으면 제거될, 사용되지 않는 가져온 값을 JavaScript 출력에 보존합니다. | ||
--preserveWatchOutput |
|
|
|
watch 모드에서 콘솔을 지우는 것을 비활성화합니다. | ||
--pretty |
|
|
|
컴파일러 에러를 읽기 쉽게 하기 위해 TypeScript 출력에서 색상과 서식을 활성화합니다. | ||
--reactNamespace |
|
|
|
| ||
--removeComments |
|
|
|
주석 출력을 비활성화합니다. | ||
--resolveJsonModule |
|
|
|
.json 파일 가져오기를 활성화합니다. | ||
--resolvePackageJsonExports |
|
|
|
패키지 import를 해석할 때 package.json의 'exports' 필드를 사용합니다. | ||
--resolvePackageJsonImports |
|
|
|
import를 해석할 때 package.json의 'imports' 필드를 사용합니다. | ||
--rewriteRelativeImportExtensions |
|
|
|
상대 import 경로의 | ||
--rootDir |
|
Computed from the list of input files. |
|
소스 파일 안의 루트 폴더를 지정합니다. | ||
--rootDirs |
|
Computed from the list of input files. |
|
모듈을 해석할 때 여러 폴더를 하나로 취급할 수 있게 허용합니다. | ||
--skipDefaultLibCheck |
|
|
|
TypeScript에 포함된 .d.ts 파일의 타입 검사를 건너뜁니다. | ||
--skipLibCheck |
|
|
|
모든 .d.ts 파일의 타입 검사를 건너뜁니다. | ||
--sourceMap |
|
|
|
출력된 JavaScript 파일을 위한 소스 맵 파일을 생성합니다. | ||
--sourceRoot |
|
|
|
디버거가 참조 소스 코드를 찾을 루트 경로를 지정합니다. | ||
--stableTypeOrdering |
|
|
|
컴파일 간에 타입이 안정적이고 결정적으로 정렬되도록 보장합니다. | ||
--stopBuildOnErrors |
|
|
|
상류(upstream) 프로젝트의 에러 시 하류(downstream) 프로젝트 빌드를 건너뜁니다. | ||
--strict |
|
|
|
모든 엄격 타입 검사 옵션을 활성화합니다. | ||
--strictBindCallApply |
|
|
|
| ||
--strictBuiltinIteratorReturn |
|
|
|
내장 이터레이터가 any 대신 undefined의 TReturn 타입으로 인스턴스화됩니다. | ||
--strictFunctionTypes |
|
|
|
함수를 할당할 때 파라미터와 반환 값이 서브타입 호환인지 확인합니다. | ||
--strictNullChecks |
|
|
|
타입 검사 시 | ||
--strictPropertyInitialization |
|
|
|
선언되었지만 생성자에서 설정되지 않은 클래스 프로퍼티를 검사합니다. | ||
--stripInternal |
|
|
|
JSDoc 주석에 | ||
--suppressExcessPropertyErrors |
|
|
|
객체 리터럴 생성 중 초과 프로퍼티 에러 보고를 비활성화합니다. | ||
--suppressImplicitAnyIndexErrors |
|
|
|
인덱스 시그니처가 없는 객체를 인덱싱할 때 | ||
--target |
|
|
|
출력되는 JavaScript의 JavaScript 언어 버전을 설정하고 호환되는 라이브러리 선언을 포함합니다. | ||
--traceResolution |
|
|
|
| ||
--tsBuildInfoFile |
|
|
|
| ||
--typeRoots |
|
|
|
| ||
--types |
|
|
|
소스 파일에서 참조하지 않아도 포함할 타입 패키지 이름을 지정합니다. | ||
--useDefineForClassFields |
|
|
|
ECMAScript 표준을 준수하는 클래스 필드를 출력합니다. | ||
--useUnknownInCatchVariables |
|
|
|
기본 catch 절 변수를 | ||
--verbatimModuleSyntax |
|
|
|
type-only로 표시되지 않은 import나 export를 변환하거나 제거하지 않고, 'module' 설정에 따른 출력 파일 형식으로 그대로 쓰여지도록 보장합니다. | ||
관련 자료 (Related)
- 모든 옵션은 TSConfig Reference에서 자세히 설명됩니다.
tsconfig.json파일을 사용하는 법을 배워 보세요.- MSBuild 프로젝트에서 작업하는 법을 배워 보세요.
더 알아보기 (Learn more)
- TSConfig Reference에서 각 옵션의 전체 설명을 확인하세요.
- Configuring Watch에서 watch 관련 옵션을 더 자세히 살펴보세요.