사용자 정의 스크립트에서 Nx 종속성 다이어그램 사용
개원Nx monorepo toolkit의 강력한 지주 중 하나는 의존 관계도이다.본문에서 우리는 자신의 각본에서 그것을 어떻게 활용하는지 연구할 것이다.
Nxmonorepos를 통해 개발을 확장하는 데 도움을 줄 수 있는 소스 개발 도구 패키지입니다.Nx를 돋보이게 하는 건요.
종속성 다이어그램 - Nx 작업공간 파악
"affected" commands - 진정으로 바뀐 것만 구축할 수 있음
computational caching - 빅토르 사프킨은 "How to never build or test twice"에 블로그를 한 편 썼다.
그것은 기술과 무관하다. 비록 Nx는 현재 자바스크립트 생태계에 주목하고 있지만, Nx에는 그것과 특별히 관련된 것이 없다.따라서 자바나 자바라도Net 프로젝트를 구축할 수 있음
$ nx affected:test
또는$ nx affected:build
응용 프로그램과 라이브러리 구축을 실행합니다.영향을 받은 명령은test/build/만 실행됩니다.변경된 응용 프로그램과 라이브러리에 있습니다.이러한 명령은 CI 파이프의 시간을 크게 단축하는 데 도움이 될 것이라고 상상할 수 있습니다.자세히 보기about it on the Nx docs.흥미로운 것은 도형도 운행을 통해
$ nx dep-graph
또는 실행affected:dep-graph
을 통해 영향을 받은 노드만 표시합니다.간단한 영상이 있는데 dep 도형의 가시화를 안내합니다
코드에서 프로젝트 맵에 접근
Nx에는 내장된 자동화 시스템이 포함되어 있습니다.그러나 모든 작업 공간은 유일무이하기 때문에 자신의 수요에 따라 맞춤형 제작을 해야 한다.맞춤형 자동화 스크립트도 의존 관계도를 이용할 수 있다.이 점을 해낼 수 있는 몇 가지 방법이 있다.
방법 1: TypeScript에서
TypeScript 파일에서는 다음과 같이 dep 그림의 노드를 사용할 수 있습니다.
import { createProjectGraph } from '@nrwl/workspace/src/core/project-graph';
const graph = createProjectGraph();
가져오는 것은 core/project-graph
파일에서 함수를 가져오는 깊이입니다.이는 공용 API의 일부가 아니므로 변경될 수 있습니다.이 점에 주의하세요.메서드 2: JSON으로 내보내기
도면을 JSON 파일로 내보낼 수도 있습니다.
nx dep-graph --file=testgraph.json
다른 프로그램으로 다시 가져올 필요가 있다면, 이 점이 특히 유용하다.방법 3: 인쇄에 영향
만약 Nx 문서의 the distributed CI setup를 보면, 여기에 Azure 설치의 예가 하나 있는데, 이것은 의존 관계도를 사용하여 영향을 받는 노드를 계산한 다음에 그에 상응하여 구축을 나누어 주는 것이다.
이것은 이 노드의 발췌문이다.js 스크립트:
const execSync = require('child_process').execSync;
const array = JSON.parse(
execSync(`npx nx print-affected --base=${baseSha}`)
.toString()
.trim()
).tasks.map((t) => t.target.project);
방법 4: 영향 받는 응용 프로그램 및 라이브러리 인쇄
위에서 언급한 방법3은 생성된 JSON 출력을 필터하고 조작할 수 있기 때문에 매우 유연성을 제공합니다.
대신
affected:apps
및 affected:libs
도 사용할 수 있습니다.특히 —-plain
로고를 통과할 때, 빈칸으로 구분된 응용 프로그램/라이브러리 목록을 보여 줍니다. 사용자 정의 스크립트에서 다시 해석할 수 있습니다.$ nx affected:apps —-base=master —-plain
추가 정보found on the Nx docs.어디서 사용해요?
Nx monorepo에는 두 가지 주요 사용 사례가 있습니다.
Workspace schematics-schematics는'생성기'의 독특한 단어로 TypeScript로 스크립트를 작성할 수 있으며 작업 영역에서 코드를 만들거나 업데이트하거나 삭제할 수 있다.Nx 자체에는 기본 제공되는 원리도가 있습니다.작업 영역 설명도는monorepo
사용자 정의 스크립트 - 이 스크립트들은 보통 Nxrepo
tools
폴더에 놓여 있으며 셸 스크립트, 노드가 될 수 있습니다.js 스크립트나 당신이 좋아하는 것들CI 설정 최적화 - 여러 노드를 병렬화distributed builds합니다.
결론
우리는 Nx 의존 관계도를 간략하게 소개했는데, 그것이 어떻게 작동하는지, 특히 자신의 코드에서 그것을 어떻게 활용하는지.
Reference
이 문제에 관하여(사용자 정의 스크립트에서 Nx 종속성 다이어그램 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nx/using-the-nx-dependency-graph-in-custom-scripts-3goo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)