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 테스트 실행 |
'JavaScript > js 문법' 카테고리의 다른 글
사용자의 위치 사용하는 방법 - 항상 허용 (0) | 2025.02.24 |
---|---|
Nestjs에서 Valkey 쓰기 - *.service.ts (0) | 2025.02.22 |
nestJs CURD 레포지토리 (0) | 2025.02.18 |
NestJs - HTTP 예외 처리 클래스 (0) | 2025.02.14 |
NestJs 컨트롤러 - req 데이터 사용 (0) | 2025.02.13 |