You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- : 프로젝트를 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