모노레포란?

yarn workspaces 설정

루트 디렉토리에 yarn init 또는 yarn init -y로 node 패키지 사용을 위한 준비를 합니다.

yarn init -y

해당 명령어를 입력하면 package.json이 생성되며 yarn workspaces를 활성화하기 위해 다음과 같이 수정합니다.

{
  "name": "ft_transcendence",
  "private": true,
  "version": "1.0.0",
  "license": "MIT",
  "workspaces": {
    "packages": [
      "packages/**"
    ]
  }
}
"name": "42dashboard",
	"version": "0.1.0",
	"description": "42Seoul Dashboard Project",
	"repository": "<https://github.com/innovationacademy-kr/42dashboard.git>",
	"author": "Team 42Dashboard <[email protected]>",
	"private": true,
	"workspaces": [
		"packages/*"
	],

workspace로 정해둔 packages 디렉토리 안에 프로젝트 패키지를 생성합니다.

프로젝트에 필요한 client 패키지와 server 패키지를 생성하였습니다.

mkdir packages packages/client packages/server
cd packages/client
yarn init -y
cd ../server
yarn init -y

yarn workspace에서 패키지 추가를 위해서는 기존 yarn add [패키지 이름]이 아닌 다른 방법을 써야 합니다.

pack-a에 패키지 추가

yarn workspace client add [패키지 이름]
//client 폴더 위치에선 yarn add [패키지 이름]