[yarn] yarn workspace를 이용한 monorepo 구성

Inhye Jeong·2020년 11월 9일
0

repository

목록 보기
1/1

1. Monorepo?

하나의 repository에 여러 프로젝트, 패키지를 가진 것을 의미한다.

├─apps
│ ├─ project-a
│ │   ├─ src
│ │   │   └─ ...
│ │   └─ package.json
│ │
│ ├─ shared
│ │   ├─ src
│ │   │   └─ ...
│ │   └─ package.json
│ │
│ └─ project-b
│    ├─ src
│    │   └─ ...
│    └─ package.json
├─packages
│   ├─ package-a
│   |  ├─ src
│   |  │   └─ ...
│   |  └─ package.json
│   ├─ package-b
│   |  ├─ src
│   |  │   └─ ...
│   |  └─ package.json
├─ yarn.lock
├─ package.json
 

1) common config를 루트 레벨에서 관리가 가능하다.

  • eslint, prettier, babel
  • 루트에서의 package.json
{
  "private": true,
  "workspaces": [
    "apps/*",
    "packages/*",
  ]
}

2) packages

  • packages directory 하위에 각 패키기지를 위치시키고, apps 하위 복수개의 프로젝트에서 접근해서 사용할 수 있다.
  • 중복으로 사용하는 모듈 외에는 각 패키지들에 위치하여 사용하면 된다. 각 의존성 설정은 package.json에 설정하고 사용하면 된다.

profile
Frontend Engineer in @ProtoPie

0개의 댓글