Skip to content

Commit 715b114

Browse files
authored
docs: item 45 (#42)
1 parent aba5a46 commit 715b114

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

ch05_any_다루기/.keep

Whitespace-only changes.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# 아이템 45. devDependencies에 typescript와 @types 추가하기
2+
3+
### package.json
4+
5+
- `dependencies`
6+
- : 프로젝트를 npm에 공개하여 다른 사용자가 해당 프로젝트를 설치한다면, `dependencies`의 라이브러리가 같이 설치
7+
- `devDependencies`
8+
- : 프로젝트를 npm에 공개하여 다른 사용자가 해당 프로젝트를 설치한다면, `devDependencies`의 라이브러리는 제외하고 설치
9+
- `peerDependencies`
10+
- : 런타임에 필요하긴 하지만, 의존성을 직접 관리하지 않는 라이브러리만 포함
11+
12+
타입스크립트 프로젝트에서 공통적으로 고려해야 할 사항 두가지는 아래와 같다.
13+
14+
#### 타입스크립트 자체 의존성을 고려해야 한다.
15+
16+
팀원들 모두가 항상 동일한 버전을 설치한다는 보장이 있어야 한다. 따라서 `typescript`를 시스템 레밸에서 사용하는 것보다는 `devDependencies`에 넣는 것이 적합하다. 또, `npx`를 사용해서 `devDependencies`를 통해 설치된 타입스크립트 컴파일러를 실행할 수 있다.
17+
18+
```bash
19+
npx tsc
20+
```
21+
22+
#### 타입 의존성(@types)을 고려해야 한다.
23+
24+
라이브러리에 타입 선언이 포함되엉 있지 않더라도, DefinitelyTyped에서 타입 정보를 얻을 수 있다.
25+
26+
```bash
27+
npm install react
28+
npm install --save-dev @types/react
29+
```
30+
31+
`package.json`
32+
33+
```json
34+
{
35+
"devDependencies": {
36+
"@types/react": "^16.8.19",
37+
"typescript": "^3.5.3",
38+
},
39+
"dependencies": {
40+
"react": "^16.8.6",
41+
}
42+
}
43+
```
44+
45+
### 요약
46+
47+
- 타입스크립트를 시스템 레밸로 설치하는 것보다, 프로젝트의 devDependencies에 포함시키고 팀원 모두가 동일한 버전을 사용하도록 하자.
48+
- @types 의존성은 devDependencies에 포함시켜야한다. 런타입에 @types가 필요한 경우라면 별도의 작업이 필요할 수 있다.

0 commit comments

Comments
 (0)