THE DEVLOG

scribbly.

Next.js+형태소분석 CS퀴즈앱 만들기

2023.02.28 14:16:42

  1. styled components 설치
    yarn create next-app --example with-styled-components-babel으로 styled-compoents가 적용된 예시를 설치한다.
    styled-components는 서버사이드를 위해 별도의 설정이 필요한데, 해당 설정과 타입스크립트가 적용되어있는 예시이다.

  2. eslint, redux-toolkit 설정
    영화앱2에서 적용했던 것과 마찬가지로 eslint, eslint airbnb, eslint next, eslint prettier 순으로 적용한다.

추가로 리덕스 툴킷 사용을 위한 리덕스 라이브러리, 리덕스 타입, 플러그인 등을 설치한다.

{
  "private": true,
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  },
  "dependencies": {
    "@reduxjs/toolkit": "^1.3.6",
    "axios": "^1.3.4",
    "next": "latest",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-redux": "^8.0.5",
    "redux-devtools-extension": "^2.13.9",
    "styled-components": "^5.3.6"
  },
  "devDependencies": {
    "@types/node": "^18.11.18",
    "@types/react": "^18.0.26",
    "@types/react-dom": "18.0.10",
    "@types/react-redux": "^7.1.25",
    "@types/styled-components": "^5.1.26",
    "eslint": "^8.32.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-config-airbnb-typescript": "^17.0.0",
    "eslint-config-next": "13.1.1",
    "eslint-config-prettier": "^8.6.0",
    "typescript": "4.9.4"
  },
  "eslintConfig": {
    "extends": [
      "next/core-web-vitals",
      "airbnb",
      "airbnb-typescript",
      "prettier"
    ]
  }
}

그리고 기본으로 생성된 tsconfig.json은 아래와 같다.

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "incremental": true,
    "esModuleInterop": true,
    "module": "esnext",
    "resolveJsonModule": true,
    "moduleResolution": "node",
    "isolatedModules": true,
    "jsx": "preserve"
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}