pnpm 및 Lerna: 다중 팩 저장소에서 필터링
MPR의 필터링은 매우 중요합니다. 왜냐하면 개발 과정에서 변경은 주로 한 개 또는 두 개의 패키지 내에서 진행되기 때문입니다.패키지가 몇 개만 수정되었다면 전체 저장소에서 명령을 실행하는 것은 의미가 없습니다.
Lerna에서 필터링
Lerna의 필터링(
v3.2.1
)은 다음 플래그를 통해 수행됩니다.scope
- 주어진 glob와 일치하는 패키지만 포함합니다.include-filtered-dependents
- --scope
, --ignore
또는 --since
과 상관없이 명령을 실행할 때 모든 전달 가능한 의존항을 포함한다.include-filtered-dependencies
- --scope
, --ignore
또는 --since
과 상관없이 명령을 실행할 때 전달할 수 있는 모든 의존항을 포함한다.ignore
- 주어진 glob와 일치하는 가방을 제외합니다.private
- 개인 패키지가 포함되어 있습니다.Pass - no private는 개인 패키지를 제외합니다.since
- 지정된 [ref] 이후 업데이트된 패키지만 포함됩니다.ref를 전달하지 않으면 기본적으로 가장 가까운 표시입니다.login-page
구성 요소에서만 작업할 수 있습니다.login-page
과 그 어떠한 의존 항목의 설치를 실행하고자 합니다.lerna bootstrap --scope login-page --include-filtered-dependencies
또는 site-header
이라는 구성 요소를 변경하고 모든 종속 패키지에서 테스트를 실행하고자 할 수도 있습니다.lerna run test --scope site-header --include-filtered-dependents
이 표지들은 입력이 어려울 뿐만 아니라 기억하기도 어렵고 헷갈리기 쉽다.pnpm에서 필터링
Lerna와 달리 pnpm는 특수한 패키지 선택기 문법을 사용하여 명령을 제한합니다.따라서 팀장 로고 이름을 기억하기보다 기억하기 쉬운 선택기 문법만 기억하는 것이 낫다.
2.15.0
버전부터 pnpm은 다음 선택기를 지원합니다.<pattern>
- 지정된 패턴과 일치하는 패키지 이름으로 범위를 제한합니다.E、 g.:foo
、@bar/*
<pattern>...
- 일치하는 패키지의 모든 직간접적 의존항을 포함합니다.E、 g.:foo...
...<pattern>
-가방에 일치하는 모든 직간접적인 양육자를 포함한다.E、 g.:...foo
、...@bar/*
./<directory>
-정자 디렉터리에 있는 모든 가방을 포함합니다.E、 g.:./components
.
- 현재 작업 디렉토리에 있는 모든 패키지를 포함합니다.--filter
로고를 통해 지정할 수도 있고, 명령이 끝날 때의 --
이후에 지정할 수도 있다.Note: as of
v2.15.0
, filters after--
are not supported byrun
,exec
,test
따라서
login-page
과 모든 의존 항목을 유도하려면 pnpm를 사용하여 다음과 같이 하십시오.pnpm recursive install -- login-page...
site-header
및 모든 종속 항목에 대한 테스트를 실행하려면 ...<pattern>
선택기를 사용합니다.pnpm recursive test --filter ...site-header
물론 필요에 따라 여러 개의 선택기를 조합할 수 있습니다.pnpm recursive update -- ...site-header login-page... ./utils @style/*
위의 명령 업데이트의 종속성:site-header
site-header
의 부양인login-page
login-page
의 의존항utils
에 있는 모든 소프트웨어 패키지@style
범위내 모든 가방 만약 pnpm를 아직 들어보지 못했다면, 당신도 Flat node_modules is not the only way을 읽으시기 바랍니다. 그 중에서 pnpm가 만든 독특한 node_모듈 구조를 설명했습니다.
메모장
Lerna v3.2
pnpm v2.15
- 범위 내 구성 요소
-- 내 구성 요소
- 범위 도구 모음 -*
-- 도구 모음 -*
- 내 구성 요소 범위 - 필터링된 종속 항목 포함
- 내 구성 요소...
- 역할 영역 내 구성 요소 - 필터링된 종속 포함
-- ...내 구성 요소
최초 발표 pnpm blog
Reference
이 문제에 관하여(pnpm 및 Lerna: 다중 팩 저장소에서 필터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zkochan/pnpm-vs-lerna-filtering-in-a-multi-package-repository-587i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)