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
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
반응형