쭈꾸미
코드짜는 쭈꾸미
쭈꾸미
전체 방문자
오늘
어제
  • 분류 전체보기 (122)
    • Journal (54)
      • Today I Learned (44)
      • 후기&회고 (4)
      • 개인 프로젝트 (4)
      • 독서일기 (2)
    • HTML, CSS (5)
    • Javascript (32)
    • Typescript (2)
    • Git, Github (4)
    • Algorithm (1)
    • React, Next.js (14)
    • API, Database (6)
      • API (0)
      • Database (1)
      • GraphQL (2)
      • Rest-API (1)
    • React-Native (1)
    • ETC (2)
    • OS (1)
      • 우분투 Ubuntu (1)

인기 글

티스토리

hELLO · Designed By 정상우.
쭈꾸미

코드짜는 쭈꾸미

Typescript

[Typescript] Codegen 설치 및 사용 방법 / GraphQL-codegen

2022. 1. 24. 18:40

GraphQL-Codegen이란?


타입스크립트에서는 변수, 상수, 함수 등에 타입을 지정해줘야한다. 하지만 내가 만들지 않은 데이터에는 어떻게 타입을 적용할 수 있을까? 그 가장 큰 예시가 Backend에서 받아오는 API이다.

 

GraphQl-Codegen은 지정해둔 스키마의 데이터를 긁어와서 타입 문서를 자동으로 생성해준다.

 

GraphQL-Codegen 설치


가장 좋은 방법은 공식 문서를 참고하는 것이다. 하지만 매번 찾아보기 귀찮으니 방법을 간략하게 메모해둔다.

공식 문서 : https://www.graphql-code-generator.com/

 

1. 필요한 위치에서 하단의 명령어를 입력한다. 둘 중 하나만 하면 된다.

yarn add -D @graphql-codegen/cli
npm install --save-dev @graphql-codegen/cli

 

2. 하단의 명령어를 입력해서 @graphql-codegen/typescript를 설치한다. (마찬가지로 택일)

yarn add -D @graphql-codegen/typescript 
npm install --save-dev @graphql-codegen/typescript

 

3. 설치 완료! GraphQL-Codegen을 간단한 명령어로 실행하기 위해 package.json에 등록해준다.

// 등록 예시
{
	"scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "generate": "graphql-codegen"
  }
}

 

4. Codegen의 기본 설정파일 codegen.yml 을 만들어준다.

* 야믈 yml 은 설정 파일의 확장자명이다. yml 파일은 indent를 엄격하게 지켜주어야 한다.

// 기본 양식 (docs에서 볼 수 있다)
schema: schema.graphql # you can also point to a GraphQL endpoint!
generates: 
  types.ts: 
    plugins: 
      - @graphql-codegen/typescript
// 나의 경우..
schema: // 이 부분에는 API 경로를 입력해주면 된다.  
generates: 
  ./src/commons/types/generated/types.ts: 
    plugins: 
      - typescript
    config: 
      typesPrefix: I

 

상단과 같이 typesPrefix를 정해주면 모든 타입의 이름 앞에 I가 붙어서 generate 된다.

 

5. 설정을 완료한 뒤 하단의 명령어를 입력하면 타입 파일이 생성되거나 수정된다.

yarn generate

'Typescript' 카테고리의 다른 글

[Typescript] Javascript vs Typescript  (0) 2022.01.21
    'Typescript' 카테고리의 다른 글
    • [Typescript] Javascript vs Typescript
    쭈꾸미
    쭈꾸미
    느리지만 확실하게 / 웹 프론트엔드 개발자 TIL : https://jooeun-k.github.io/TIL/

    티스토리툴바