MSA

[MFA] NX 특징 , NX Cache Example

차노도리 2023. 11. 26. 23:14

https://nx.dev/

 

Nx: Smart, Fast and Extensible Build System

Nx is a smart, fast and extensible build system which comes with first class monorepo support and powerful integrations.

nx.dev

 

NX 특징

  • 현재 가장 많은 기능을 제공하는 모노레포 빌드 시스템 도구
  • 개발자 생산성 향상, CI 성능 최적화, 코드 품질 유지를 위한 도구
  • 단일 워크스페이스 혹은 전체 워크스페이스드에 대한 태스크를 수행할 수 있다.
    • 단일 워크스페이스 태스크 실행: nx[명령어] [app이름]
    • 전체 워크스페이스 태스크 실행 : nx run-many -t [명령어]
  • 작업의 결과에 대한 캐싱 기능을제공한다.
  • 모노레포 안에 있는 모든 패키지 간의 의존성 그래프를 생성한다.

 

NX  Cache Exmaple

1. NX 설치

pnpm -w add nx -D

 

2. NX 캐싱, 오케스트레이션 설정

  • ex) package.json
{
  "name": "08_gugbab-nx-test",
  ...
  "nx": {
    "targets": {
      "build": {
      	# 캐싱 유무
        "cache": true,
        # 캐싱할 대상
        "dependOn":[
          "^build"
        ],
        # 빌드 결과물 생성 위치
        "outputs": [
          "{projectRoot}/dist/**/*"
        ]
      }
    }
  }
}

 

 

3. 캐싱 테스트

  • 캐싱 안되어있을 때 (6s)

 

 

  • 캐싱되어있을 때 (88ms)