TIL Code_Camp 14일차 Nest.js/graphql

박선우·2023년 1월 30일
0

code_camp

목록 보기
27/31
post-thumbnail

🌼 학습내용

Nest.js 전반적인 이해
Eslint-Prettier 전반적인 이해

1️⃣ Nest.js 시작하기

 npx @nestjs/cli new qqq
  • 기본적인 폴더 생성 => 보일러 플레이트(초기 폴더 구조)

    공식문서 참조

2️⃣ package.sjon

"scripts": {
    "prebuild": "rimraf dist",
    "build": "nest build",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "nest start",
    "start:dev": "nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "node dist/main",
    "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:cov": "jest --coverage",
    "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
    "test:e2e": "jest --config ./test/jest-e2e.json"
  },
  • 개발할 때 : "start:dev" 사용
  • 배포할 때 : "start:prod" 사용
  • "start:dev": "nest start --watch"watch : 소스코드가 바뀌면 자동으로 리프레쉬 해주는 것
  • test : 배포전에 테스트 코드를 작성해서 실행시켜 봄으로 모든 API가 제대로 작동하는지 확인하는 것으로 보다 안전한 개발을 하기 위한 것입니다.

3️⃣ Eslint-Prettier

  • 확장 프로그램 Eslint & Prettier를 다운 받아 사용가능
  • vsCode 설정-> Format On Save Mode 선택하여 설정 할 수 있다.
  • 협업시 같은 스타일 코드로 개발 가능 -> 최상단 폴더에 .vscode 폴더 안에 settings.json파일 생성
  • husky : 경고가 있으면 git에 올리지 못함
//  settings.json
{
    "editor.formatOnSave": true, // 저장하면 프리티어가 바로 적용될 수 있게 설정
    "editor.defaultFormatter": "esbenp.prettier-vscode" // prettier 포멧 적용 설정
}

4️⃣ Graphql(Code-frist)

// yarn add @nestjs/graphql @nestjs/apollo graphql apollo-server-express 다운
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';

@Module({
  imports: [
    GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
      autoSchemaFile: 'src/commons/graphql/scheam.gql', 
      // Code-first -> autoSchemaFile : "경로파일 설정"
    }),
  ],
})
export class AppModule {}
----------------------------------------------------------------------------

// scheam.gql
# ------------------------------------------------------
# THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
# ------------------------------------------------------

type Query {
  test: String
}
profile
코린이 열심히 배우자!

0개의 댓글