프로젝트 설정 가이드
초기 설정
1. 의존성 설치
프로젝트 루트에서 모든 의존성을 설치합니다:
# 루트 디렉토리에서
npm install
이 명령은 워크스페이스의 모든 패키지(apps/*, packages/*)의 의존성을 설치합니다.
2. NestJS 애플리케이션 실행
개발 모드 (권장)
cd apps/api
npm run start:dev
참고: start:dev는 TypeScript를 직접 실행하므로 빌드가 필요 없습니다.
프로덕션 모드
cd apps/api
# 1. 빌드
npm run build
# 2. 실행
npm run start:prod
문제 해결
에러: Cannot find module 'dist/main'
원인
- NestJS CLI가 설치되지 않았거나 인식되지 않음
nest-cli.json설정 문제- 의존성이 제대로 설치되지 않음
해결 방법
1단계: 의존성 재설치
# 루트 디렉토리에서
rm -rf node_modules
rm -rf apps/api/node_modules
rm -rf packages/*/node_modules
# 재설치
npm install
2단계: NestJS CLI 확인
cd apps/api
npx nest --version
버전이 출력되면 정상입니다.
3단계: nest-cli.json 확인
apps/api/nest-cli.json 파일이 올바른지 확인:
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true
}
}
4단계: 대안 실행 방법
NestJS CLI가 작동하지 않으면 ts-node를 직접 사용:
cd apps/api
npx ts-node -r tsconfig-paths/register src/main.ts
또는 package.json에 스크립트 추가:
{
"scripts": {
"start:dev:alt": "ts-node -r tsconfig-paths/register src/main.ts"
}
}
에러: Cannot find module '@crypto-wallet-core/core'
원인
packages/core가 빌드되지 않음- 워크스페이스 링크가 제대로 설정되지 않음
해결 방법
# 1. core 패키지 빌드
cd packages/core
npm run build
# 2. 또는 루트에서 모든 패키지 빌드
cd ../..
npm run build
에러: Port 3000 already in use
해결 방법
# 다른 포트로 실행
PORT=3001 npm run start:dev
# 또는 사용 중인 프로세스 종료
lsof -ti:3000 | xargs kill -9
프로젝트 구조 확인
올바른 구조:
crypto-wallet-core/
├── apps/
│ └── api/
│ ├── nest-cli.json # ✅ 여기에 있어야 함
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ └── main.ts
├── packages/
│ └── core/
│ ├── package.json
│ └── src/
├── nest-cli.json # ⚠️ 루트에도 있지만 apps/api가 우선
└── package.json
체크리스트
프로젝트를 처음 실행할 때:
- 루트에서
npm install실행 -
apps/api/nest-cli.json파일 존재 확인 -
npx nest --version명령으로 CLI 확인 -
cd apps/api && npm run start:dev실행 -
http://localhost:3000접속 확인 -
curl http://localhost:3000/health테스트
추가 정보
NestJS CLI 설치 확인
# 로컬 설치 확인
cd apps/api
ls node_modules/.bin/nest
# 전역 설치 (선택사항)
npm install -g @nestjs/cli
워크스페이스 확인
# 루트에서
npm ls --workspaces
모든 패키지가 나열되어야 합니다.