Node
Nest.js
Index

설치

npm i -g @nestjs/cli

프로젝트 생성

nest new project-name

간단 구조 설명

  • *.spec.ts : 테스트
  • module.ts : 애플리케이션의 루트 모듈
  • main.ts : Nest 애플리케이션 인스턴스 생성, Nest 애플리케이션 메인

Swagger

// Swagger 설정
const config = new DocumentBuilder()
  .setTitle("Board CRUD")
  .setDescription("내 첫 Nest")
  .setVersion("1.0")
  .addTag("rookedsysc")
  .build();
const documents = SwaggerModule.createDocument(app, config);
SwaggerModule.setup("swagger-ui", app, documents);
 
await app.listen(3000);

Setting

VSCode Debug Setting

  • debugger 설정
  • launch.json 파일 생성 후 아래와 같이 설정
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Nest Framework",
      "runtimeArgs": ["run", "start:debug", "--", "--inspect-brk"],
      "autoAttachChildProcesses": true,
      "restart": true,
      "sourceMaps": true,
      "stopOnEntry": false,
      "console": "integratedTerminal"
    }
  ]
}

vscode node version 문제

vscode에서 실행되는 기본 node version은 ms js debugger에서 nvm 쓸 때 default 버전 따라간다고 합니다.

nvm list # 기본 버전 확인
nvm alias default v22.4.1
  • 참조

https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_multi-version-support (opens in a new tab)

Intellij Debug Setting

  • 패키지 매니저 pnpm으로 설정
  • Edit Configuration
  • 버튼 누르고 npm 선택 후 아래와 같이 설정
  • Tools > Actions on Save : 기타 on save 설정
  • dist 폴더 검색 안되게 설정

Cursor 설정

  • Formatter -> Default Formatter -> Prettier 설정
  • format on save 설정
  • Auto Closing Tag 체크 해제

tsconfig

"strict": true

ESLint Error

'extensions' has been removed, 'resolvepluginsrelativeto'와 같은 에러가 Project를 만들자마자 발생하는 것을 알 수 있는데, 이는 ESLint 9 버전대로 가면서 config 파일의 구성이 달라져서 발생하는 에러이다. 마이그레이션 가이드를 보고 수정하다가 그 마저도 잘 안되서 그냥 ESLint 8 버전대로 다운그레이드 했다.

pnpm remove eslint
pnpm i eslint@8.57.0