
개요
- CRA 없이 webpack에서 typescript 설정을 위한 개발 환경 설정
- typescript 핸드북 참고
tsconfig.json 생성하기
tsc 명령의 tsc --init 명령어를 사용한다.
타입스크립트 프로젝트에서는 구성 파일을 생성하기 위해 해당 명령어를 사용하는 것을 권장한다.
What is a tsconfig.json
디렉토리에 tsconfig.json 파일이 있다면 해당 디렉토리가 TypeScript 프로젝트의 루트가 된다.
tsconfig.json 파일은 프로젝트를 컴파일하는데 필요한 루트 파일과 컴파일러 옵션을 지정한다.
자바스크립트 프로젝트는 jsconfig.json 파일을 대신 사용할 수 있다.
이 파일은 tsconfig.json 파일과 거의 동일하게 동작하지만, 몇몇 자바스크립트 관련 컴파일러 플래그가 기본으로 활성화되어 있다.
- 입력 파일 없이 tsc를 호출하면 컴파일러는 현재 디렉토리에서부터 시작하여 상위 디렉토리 체인으로 tsconfig.json 파일을 검색
- 입력 파일 없이 tsc와 tsconfig.json 파일이 포함된 디렉토리 경로 또는 설정이 포함된 유효한 경로의 .json 파일 경로를 지정하는 --project (또는 -p) 커맨드 라인 옵션을 사용 가능
커맨드 라인에 입력 파일을 지정하면 tsconfig.json 파일이 무시된다.
예제
tsconfig.json 예제 파일
- files 속성 사용하기
- include 와 exclude 속성 사용하기
{
"compilerOptions": // 포함된 각 파일이 타입스크립트에 따라 컴파일 되거나 타입을 확인하는 방법
{
"target" : "es5", // es5로 설정하면 es5 버전 자바스크립트로 컴파일 해준다.
//최신버전을 원할 경우 es2016, esnext 도 가능.
"module": "commonjs", // 자바스크립트 간 import 문법을 구현할 때, 어떤 문법을 사용 할 것인지 정한다.
//( commonsJs 는 require 문법, es2015,esnext는 import 문법을 사용한다 어느정도 IE 호환성을 원하면 es5, commonJS 사용 추천)
"noImplicitAny": true, // any 타입이 의도치않게 발생한 경우 에러를 띄어준다.
"removeComments": true, // 컴파일 시 주석이 제거된다.
"preserveConstEnums": true, // const enum 형 선언을 지우지 않을건지 여부 체크.
"sourceMap": true // 디버깅과 개발할 때 필요, tsc를 실행하면 디렉토리에 .map 파일이 생성된다.
// 개발자도구 Sources 탭에서 .ts파일을 확인할 수 있게한다.
},
"files": [ // 타입스크립트가 실행될 파일과 실행되지 않은 파일
"core.ts",
"sys.ts",
"types.ts",
"scanner.ts",
"parser.ts",
"utilities.ts",
"binder.ts",
"checker.ts",
"emitter.ts",
"program.ts",
"commandLineParser.ts",
"tsc.ts",
"diagnosticInformationMap.generated.ts"
]
}
{
"compilerOptions": {
"module": "system",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "../../build/local/tsc.js", // 단일 파일로 출력시 파일 명
"sourceMap": true
},
"include": ["src/**/*"], // 파일을 포함하는 가장 흔한 방법 tsconfig.json의 최상위 include 속성을 사용.
// src/**/* 디렉토리 안의 모든 타입스크립트 파일을 재귀적으로 포함
"exclude": ["node_modules", "**/*.spec.ts"]
}
include
포함된 파일을 제어하기 위한 문법
- *: 0 개이상의 문자와 일치시킵니다. (디렉터리 구분자 제외)
- ?: 하나의 문자와 일치시킵니다. (디렉터리 구분자 제외)
- **/ : 모든 레벨에 중첩된 모든 디렉터리와 일치시킵니다.
대부분 프로젝트에서는 ["src"]와 같은 간단한 include 컴파일러 옵션만으로 충분하다.
exclude
프로젝트의 include 파일 목록에 타입스크릅트로 컴파일 할 수 없는 파일이 포함되는 경우를 막기 위해 include의 시작 목록에서 파일을 제거하는 작업 수행
타입스크립트는 비록 가져온 파일이 exclude 목록에 명시적으로 나열되어 있더라도 포함된 파일에 따라 가져온 모든 파일에서 실행된다.
레퍼런스
TypeScript: Documentation - What is a tsconfig.json (typescriptlang.org)
Documentation - What is a tsconfig.json
Learn about how a TSConfig works
www.typescriptlang.org
Typescript 컴파일시 세부설정 (tsconfig.json) - 코딩애플 온라인 강좌 (codingapple.com)
Typescript 컴파일시 세부설정 (tsconfig.json) - 코딩애플 온라인 강좌
tsconfig 파일 생성하기 여러분 프로젝트 폴더에 tsconfig.json 이라는 파일을 하나 생성합시다. 여기엔 타입스크립트 ts 파일들을 .js 파일로 변환할 때 어떻게 변환할 것인지 세부설정이 가능합니다
codingapple.com
[TypeScript] tsconfig.json 의 기본 옵션 (basic options) (velog.io)
[TypeScript] tsconfig.json 의 기본 옵션 (basic options)
디버깅과 개발할 때 필요compilerOptions에서 sourceMap 옵션을 설정하고 터미널에 tsc를 실행하면 디렉토리에 .map 파일이 생성된다개발자도구 Sources 탭에서 .ts 파일을 확인할 수 있다. ⇒ 디버깅 용이
velog.io
'개발' 카테고리의 다른 글
[rollup.js] 환경 설정하기(2) - 플러그인 정리하기 (0) | 2024.06.12 |
---|---|
Webpack , Babel ? (0) | 2024.06.12 |
[rollup.js] 환경 설정하기(1) - 오류 해결하기 (0) | 2024.05.13 |
[Babel] Loader 사용하기 😎 (2) | 2024.05.09 |
[Webpack] Webpack 이해하기 - Concepts (2) | 2024.05.02 |