본문 바로가기
JavaScript/js 문법

NestJs 실행 명령어

by GREEN나무 2025. 2. 20.
728x90

수정시 자동으로 서버 다시 시작하는 npm run start:dev 로 사용하기

npm run start:dev

package.json

"scripts": {
    "start:dev": "nest start --watch",
  },

 

 

 

스크립트 설명

package.json의 scripts에 정의된 명령어들이 하는 역할

특히 start:dev와 test:watch는 개발 중 자주 쓰이는 스크립트


1. build: NestJS 애플리케이션 빌드

"build": "nest build"
  • nest build 명령어는 NestJS 프로젝트를 TypeScript에서 JavaScript로 변환(컴파일)하는 역할을 한다.
  • 컴파일된 파일은 기본적으로 dist/ 폴더에 저장된다.
  • tsconfig.json의 설정에 따라 es6 또는 esnext 등으로 변환될 수 있다.

2. format: 코드 스타일 자동 정리 (Prettier)

"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\""
  • prettier --write를 사용하여 src/ 및 test/ 폴더 내부의 모든 .ts 파일을 자동 정리한다.
  • "src/**/*.ts": src 폴더 내부의 모든 TypeScript 파일을 대상으로 함.
  • "test/**/*.ts": test 폴더 내부의 모든 TypeScript 파일을 대상으로 함.
  • 코드 스타일을 강제하여 일관성을 유지하는 데 유용하다.

3. start: NestJS 애플리케이션 실행

"start": "nest start"
  • NestJS 애플리케이션을 실행하는 기본 명령어.
  • main.ts 파일을 실행하여 서버를 시작한다.

4. start:dev: 개발 모드로 실행

"start:dev": "nest start --watch"
  • nest start --watch는 파일이 변경될 때 자동으로 서버를 다시 시작하는 핫 리로딩 기능을 포함한다.
  • 개발 시 코드 변경 사항을 즉시 반영할 수 있어 편리하다.

5. start:debug: 디버그 모드 실행

"start:debug": "nest start --debug --watch"
  • --debug 옵션을 추가하여 디버깅 기능을 활성화한다.
  • --watch가 포함되어 있어 파일 변경 시 자동으로 서버가 재시작된다.
  • VS Code 등의 디버거와 연동할 때 사용하면 유용하다.

6. start:prod: 프로덕션 모드 실행

"start:prod": "node dist/main"
  • build를 통해 생성된 dist/main.js 파일을 실행한다.
  • TypeScript가 아닌 JavaScript 파일을 실행하기 때문에, 성능이 더 빠르고 안정적이다.
  • NODE_ENV=production 환경에서 실행될 가능성이 높다.

7. lint: 코드 린트 검사 및 자동 수정 (ESLint)

"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
  • ESLint를 사용하여 src, apps, libs, test 폴더 내의 모든 .ts 파일을 검사한다.
  • --fix 옵션을 사용하면 가능한 경우 자동으로 문제를 수정한다.
  • 코드 스타일 및 잠재적인 버그를 사전에 방지하는 역할을 한다.

8. test: 단위 테스트 실행 (Jest)

"test": "jest"
  • Jest를 사용하여 정의된 테스트 케이스를 실행한다.
  • 테스트 파일은 일반적으로 *.spec.ts 또는 *.test.ts로 작성된다.

9. test:watch: 변경 감지 테스트 실행

"test:watch": "jest --watch"
  • --watch 옵션을 사용하여 파일 변경을 감지하면 자동으로 테스트를 다시 실행한다.
  • 개발하면서 테스트를 지속적으로 실행해야 할 때 유용하다.

10. test:cov: 테스트 커버리지 확인

"test:cov": "jest --coverage"
  • --coverage 옵션을 사용하여 코드의 테스트 커버리지(coverage) 를 측정한다.
  • 어떤 코드가 테스트되지 않았는지 확인하는 데 유용하다.

11. test:debug: 디버그 모드에서 테스트 실행

"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand"
  • node --inspect-brk: Node.js의 디버거를 활성화하여 Jest 테스트를 실행할 때 디버깅이 가능하도록 설정.
  • -r tsconfig-paths/register: TypeScript의 경로 별칭(alias)을 지원하도록 설정.
  • -r ts-node/register: TypeScript 파일을 직접 실행할 수 있도록 설정.
  • --runInBand: Jest가 여러 개의 테스트를 한 프로세스에서 실행하도록 설정 (병렬 실행 대신 단일 프로세스로 실행).

12. test:e2e: E2E (End-to-End) 테스트 실행

"test:e2e": "jest --config ./test/jest-e2e.json"
  • jest-e2e.json 설정 파일을 사용하여 E2E 테스트를 실행한다.
  • 일반적으로 E2E 테스트는 NestJS 애플리케이션 전체를 실행한 상태에서 API 엔드포인트를 테스트하는 데 사용된다.

정리

스크립트 설명

build TypeScript 코드를 JavaScript로 컴파일
format Prettier를 사용하여 코드 스타일 정리
start NestJS 애플리케이션 실행
start:dev 개발 모드 실행 (파일 변경 시 자동 재시작)
start:debug 디버그 모드 실행
start:prod 빌드된 JavaScript 파일 실행 (프로덕션 환경)
lint ESLint로 코드 검사 및 자동 수정
test Jest로 단위 테스트 실행
test:watch 변경 사항 감지 후 자동 테스트 실행
test:cov 테스트 커버리지 보고서 생성
test:debug 디버깅 모드에서 테스트 실행
test:e2e E2E 테스트 실행