타입스크립트로 프로젝트전에 yarn init, tsc --init 둘 다 설치
yarn init의 목적
yarn init 명령어는 프로젝트의 패키지 매니저로서 Yarn을 사용하여 프로젝트를 초기화합니다. 이 명령어를 실행하면 프로젝트의 루트 디렉토리에 package.json 파일이 생성됩니다. 이 파일은 프로젝트의 의존성, 스크립트, 메타데이터 등을 관리합니다.
tsc --init의 목적
tsc --init 명령어는 TypeScript 컴파일러 설정 파일인 tsconfig.json을 생성합니다. 이 파일은 TypeScript 컴파일러 옵션을 설정하는 데 사용됩니다. 예를 들어, 컴파일 대상, 모듈 시스템, 엄격 모드 설정 등을 정의할 수 있습니다.
TypeScript 프로젝트에서 `tsc --init` 명령어를 실행할 때, `npx`는 Node.js 패키지 실행기입니다. `npx`를 사용하면 로컬 또는 글로벌로 설치된 패키지의 명령어를 실행할 수 있습니다.
### `npx` 사용 이유
- **로컬 설치된 패키지 실행**: 프로젝트의 `node_modules`에 설치된 패키지를 전역으로 설치하지 않고도 실행할 수 있습니다.
- **일회성 명령 실행**: 글로벌 설치 없이 특정 명령을 한 번만 실행할 때 유용합니다.
TypeScript와 관련된 명령어를 실행할 때 `npx`를 사용하는 이유는 로컬로 설치된 TypeScript 컴파일러(`tsc`)를 실행하기 위함입니다. 로컬로 설치된 패키지를 실행하면 버전 충돌을 방지하고, 프로젝트별로 일관된 환경을 유지할 수 있습니다.
### 명령어 사용 예제
#### TypeScript 프로젝트 초기화 단계 요약
1. **프로젝트 초기화**:
```bash
mkdir my-ts-project
cd my-ts-project
yarn init -y
```
2. **TypeScript 및 관련 패키지 설치**:
```bash
yarn add typescript ts-node @types/node --dev
```
3. **TypeScript 설정 파일 생성**:
```bash
npx tsc --init
```
### `npx` 없이 실행하기
만약 TypeScript가 글로벌로 설치되어 있다면, `npx` 없이 `tsc --init`을 실행할 수 있습니다. 하지만 프로젝트마다 TypeScript의 버전을 다르게 사용할 수 있기 때문에, 로컬 설치된 TypeScript를 사용하는 것이 일반적입니다.
```bash
# 글로벌 설치
npm install -g typescript
# 글로벌 설치된 TypeScript 사용
tsc --init
```
### 추가 설명
#### `npx`와 TypeScript
TypeScript를 로컬로 설치했을 때, 실행 파일은 `node_modules/.bin/` 디렉토리에 위치하게 됩니다. `npx`는 이 디렉토리에 있는 실행 파일을 찾아 실행해줍니다.
```bash
# TypeScript 설치 후, 로컬 node_modules에 위치한 tsc
./node_modules/.bin/tsc --init
```
이 방법은 `npx`와 동일한 결과를 제공하지만, `npx`를 사용하는 것이 더 편리합니다.
### 결론
TypeScript 프로젝트에서 `tsc --init` 명령어를 실행할 때, `npx`를 사용하는 것이 일반적이고 권장됩니다. 이는 프로젝트에 로컬로 설치된 TypeScript 버전을 사용하여 설정 파일을 생성하고, 버전 충돌을 방지할 수 있기 때문입니다.