Prettier 설정


// .prettierrc
{
  "singleQuote": true, // 쌍따옴표 대신 홑따옴표 사용
  "semi": true, // 모든 구문 끝에 세미콜론 출력
  "useTabs": false, // 탭 대신 공백으로 들여쓰기
  "tabWidth": 2, // 들여쓰기 공백 수
  "trailingComma": "all", // 가능하면 후행 쉼표 사용
  "printWidth": 80, // 줄 바꿈할 길이
  "bracketSpacing": true, // 객체 괄호에 공백 삽입
  "arrowParens": "always", // 항상 화살표 함수의 매개 변수를 괄호로 감쌈
  "endOfLine": "lf", // OS에 따른 코드라인 끝 처리 방식 사용
}

Lint 설정


에어비앤비 린트 패키지 설치

npm install eslint eslint-config-airbnb eslint-config-airbnb-typescript eslint-config-next eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks prettier eslint-plugin-prettier eslint-config-prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser --save-dev
// .eslintrc.json
{
  "env": {
    "browser": true,
    "es2021": true,
    "node": true
  },
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [".js", ".jsx", ".ts", ".tsx"] // 확장자 에러 표시 x
      }
    }
  },
  "extends": [
    "prettier",
    "airbnb",
    "airbnb-typescript",
    "next/core-web-vitals",
    "eslint:recommended", // 추천 규칙 적용
    "plugin:react/recommended",
    "plugin:prettier/recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": "latest",
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "plugins": ["@typescript-eslint", "react", "prettier"],
  "rules": {
    "react/react-in-jsx-scope": "off",
    "react/jsx-props-no-spreading": "off",
    "prettier/prettier": "error" // 써보고 쓸데없는 오류가 발생할 경우 직접 설정
  }
}

각 Key 값의 의미는 다음과 같다.

설치 후 확인

npx eslint .