nx를 이용한 react, nestjs 기반 monorepo project 구성
현재 팀구성 및 개발환경을 고려한 web proejct 구성에 대한 검토 및 선정.
Read More2023-08-30
Monorepo nx pnpm react nestjs현재 팀구성 및 개발환경을 고려한 web proejct 구성에 대한 검토 및 선정.
Performent Node Package Manager : 빠르고 효율적인 javscript 패키지 매니저
> npx create-nx-workspace@latest --pm pnpm
✔ Where would you like to create your workspace? · test
✔ Which stack do you want to use? · react
✔ What framework would you like to use? · none
✔ Integrated monorepo, or standalone project? · integrated
✔ Application name · frontend
✔ Which bundler would you like to use? · vite
✔ Test runner to use for end to end (E2E) tests · none
✔ Default stylesheet format · styled-components
✔ Enable distributed caching to make your CI faster · No <-- nx cloud로 no로 선택
@nx/nestjs 플러그인 설치
> pnpm add -D @nx/nest
nestjs project 추가
# frontendProject 옵션은 해당 frontend app에 대한 proxy서버설정 처리지원
> npx nx g @nx/nest:app <프로젝트명> --frontendProject frontend
nx project 제거
> npx nx g rm <프로젝트명>
@nx/js 플러그인 설치
pnpm add -D @nx/js
공통 lib 추가
npx nx g @nx/js:lib <lib명>
공통 ui lib 추가
npx nx g @nx/react:lib <lib명> --bundler=vite
단일 프로젝트에 대한 명령 수행
# target은 serve, build 와 같은 명령어
> npx nx <target> <project>
다수의 프로젝트에 대한 명령 수행
# -p 옵션 없을시 기본 전체
npx nx run-many -t <target> -p <project1>, <project2>
Monorepos에는 수백 또는 수천 개의 프로젝트가 있을 수 있으므로 프로젝트 전체(또는 일부)에 대해 작업을 실행할 수 있는 것
동일한 코드를 계속해서 다시 빌드하고 다시 테스트하려면 비용이 많이 듭니다. Nx는 계산 캐시를 사용하여 동일한 코드를 두 번 다시 작성하지 않습니다.
분산 CI 태스크 실행, nx cloud 사용필수
Nx는 작업을 빠르고 정확하게 실행할 수 있도록 저장소의 모든 프로젝트 간의 종속성에 대한 그래프를 생성합니다 . 이 그래프를 시각적으로 탐색하면 Nx가 특정 방식으로 작동하는 이유를 이해하고 코드 아키텍처에 대한 높은 수준의 보기를 얻는 데 유용할 수 있습니다.
현재 팀구성 및 개발환경을 고려한 web proejct 구성에 대한 검토 및 선정.
Read More현재 재직중인 회사를 다닌지 5년차, 한창 포트폴리오를 갱신하며 겸사겸사 개인 블로그를 다시 만들었다. 이전에도 Jekyll을 이용한 개인 블로그가 있었지만, 빌드 구조와 디자인이 별로였고 많은 글을 쓰지 않았기에 repository를 삭제하는데 망설임은...
Read More