티스토리 뷰

WEB2.0/프로그래밍

pnpm workspace 사용하기

나를찾는아이 2025. 1. 20. 17:30
728x90
반응형

npm의 workspace처럼 pnpm에서도 workspace를 지원하여 모노레포를 구성할수 있습니다

 

pnpm-workspace.yaml 파일을 생성하여 다음 코드를 작성하는것으로 워크스페이스를 사용할수 있습니다

packages:
  # specify a package in a direct subdir of the root
  - 'my-app'
  # all packages in direct subdirs of packages/
  - 'packages/*'
  # all packages in subdirs of components/
  - 'components/**'
  # exclude packages that are inside test directories
  - '!**/test/**'

 

여기서 언급된 패키지들이 workspace로 구성됩니다

 

 

워크스페이스 구성후에는 다음과 같은 명령어를 사용합니다

 

 

root 프로젝트의 package.json의 명령어를 사용하기 위해서는 아래의 명령어를 사용합니다

 

pnpm -w <command>

 

root 프로젝트의 커맨드를 사용합니다

 

--workspace-root 의 약자입니다

 

 

 

root 프로젝트가 아닌 다른 프로젝트의 명령어를 실행하기 위해서는 아래의 명령어를 사용합니다

 

pnpm --filter <패키지선택자> <command>

 

 

--filter 옵션에서 사용가능한 패키지 선택자는 다양한 조합으로 사용할수 있습니다

 

pnpm --filter "@babel/core" test
pnpm --filter "@babel/*" test
pnpm --filter "*core" test

 

https://pnpm.io/filtering

 

Filtering | pnpm

Filtering allows you to restrict commands to specific subsets of packages.

pnpm.io

 

더 고급의 필터 규칙을 찾고 싶으신 경우는 위의 페이지를 방문해주세요

 

 

 

패키지 설치는 --filter 옵션을 이용하거나 -w 옵션을 이용하여 설치하시면 됩니다

pnpm --filter <패키지선택자> add <pkg>
pnpm add <pkg> -w

 

 

혹시 모노레포의 모든 명령어를 한번에 실행하고 싶으시다면 -r 옵션을 이용할수 있습니다

 

pnpm -r <command>

 

recursive 옵션입니다

 

순환하여 명령어를 실행합니다

 

 

예를 들어 test 명령어를 모든 패키지에 설정해놓았다면

 

한번의 명령어를 통해 내부의 모든 프로젝트의 test 명령어가 수행됩니다

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함