필터링
필터링을 사용하면 패키지의 특정 하위 집합으로 명령을 제한할 수 있습니다.
pnpm은 이름 또는 관계로 패키지를 선택하기 위한 다양한 selector 구문을 지원합니다.
selector는 --filter
(또는 -F
) 플래그를 통해 지정할 수 있습니다.
pnpm --filter <package_selector> <command>
매칭
--filter <package_name>
정확한 패키지를 선택하려면 단순히 이름(@scope/pkg
)을 지정하거나 패턴을 사용하여 패키지 세트(@scope/*
)를 선택하면 됩니다.
예시:
pnpm --filter "@babel/core" test
pnpm --filter "@babel/*" test
pnpm --filter "*core" test
패키지의 범위를 지정하는 것은 옵션이므로 --filter=core
은 core
를 찾을 수 없는 경우 @babel/core
을 선택합니다. 그러나 워크스페이스에 동일한 이름을 가진 여러 패키지가 있는 경우 (예: @babel/core
및 @types/core
), 범위가 없는 필터링은 아무 것도 선택하지 않습니다.
--filter <package_name>...
패키지 및 해당 의존성(직접 및 비직접)을 선택하려면 패키지 이름에 줄임표를 붙입니다: <package_name>...
. 예를 들어, 다음 명령어는 foo
및 모든 의존성에 대한 테스트를 실행합니다.
pnpm --filter foo... test
패턴을 사용하여 루트 패키지 세트를 선택할 수 있습니다.
pnpm --filter "@babel/preset-*..." test
--filter <package_name>^...
패키지의 의존성 (직접 및 비직접) 만 선택하려면, 앞서 언급한 줄임표 앞에 셰브런 (^) 이 붙은 이름 접미사를 붙입니다. 예를 들어, 다음 명령어는 foo
의 모든 의존성에 대한 테스트를 실행합니다.
pnpm --filter "foo^..." test
--filter ...<package_name>
패키지와 그것에 의존하는 패키지 (직접 및 비직접) 를 선택하기 위해, 패키지 이름 앞에 접두사로 줄임표를 붙입니다: ...<package_name>
. 예를 들어, 다음은 foo
및 이에 의존하는 모든 패키지의 테스트를 실행합니다.
pnpm --filter ...foo test
--filter "...^<package_name>"
패키지의 의존 패키지만을 선택하기 위해 (직접 및 비직접 모두), 셰브런이 뒤에 붙은 줄임표를 접두사로 붙입니다. 예를 들어, 이것은 foo
에 의존하는 모든 패키지에 대해 테스트를 실행합니다:
pnpm --filter "...^foo" test
--filter ./<glob>, --filter {<glob>}
프로젝트에 해당하는 현재 작업 디렉토리와 관련된 glob 패턴입니다.
pnpm --filter "./packages/**" <cmd>
지정된 디렉토리에 있는 모든 프로젝트를 포함합니다.
줄임표 및 셰브런 연산자와 함께 사용하여 의존 패키지 및 의존성을 선택할 수 있습니다.
pnpm --filter ...{<directory>} <cmd>
pnpm --filter {<directory>}... <cmd>
pnpm --filter ...{<directory>}... <cmd>
[<since>]
와 결합될 수도 있습니다. 예를 들어, 디렉토리 내에서 변경된 프로젝트를 모두 선택하려면:
pnpm --filter "{packages/**}[origin/master]" <cmd>
pnpm --filter "...{packages/**}[origin/master]" <cmd>
pnpm --filter "{packages/**}[origin/master]..." <cmd>
pnpm --filter "...{packages/**}[origin/master]..." <cmd>