개발

[모노레포] 공통 패키지 만들어 의존성 넣기

z-zero 2023. 5. 19. 16:00

모노레포를 사용하는 가장 큰 이유는 공통된 작업을 줄이기 위해서라고 생각한다.

예를 들어 Header, Footer, 버튼 스타일 등 한 서비스에서 각각의 프로젝트를 진행한는데에 공통된 컴포넌트나 함수가 있을 때 공통 패키지를 만들어 사용하는 것이 효율 성이 좋을 것이다.

 

packages/lib폴더를 생성하고 package.json파일을 생성하고, typescript를 설치한다.

//루트 디렉토리상태
mkdir packages/lib
cd packages/lib

yarn init

yarn add typescript

packages/lib/package.json파일 이름을 변경하고 main을 추가한다.

"name":"@non/lib",
"main":"./src/index.ts"

packages/lib/tsconfig.json 파일 생성 후 설정 값 넣기

https://www.typescriptlang.org/tsconfig

 

TSConfig Reference - Docs on every TSConfig option

From allowJs to useDefineForClassFields the TSConfig reference includes information about all of the active compiler flags setting up a TypeScript project.

www.typescriptlang.org

여길 참조하여 필요한 ts설정을 넣는다.

 

packages/lib/src/index.ts파일 생성 후 함수를 만들어보자.

export const libFunc = () => {
   return "hello from lib";
};

apps에서 packages의존해보기

root로 이동 후

//yarn workspace @apps의 패키지명 add @lib의 패키지명
yarn workspace @non/admin add @non/lib

그리고 apps의 next.js 프로젝트에서 lib을 사용하면 잘 적용 된다.