📝 목차
작업 환경
macOS Monterey 12.6
node v16.18.0 (nvm)
🍅 사용 기술
- next.js (typescript)
- eslint
- prettier
- lint-staged
- husky
- emotion
- react-query
🔥 설정 과정
yarn을 사용하고 있지만 prettier 설정까지는 아래 글의 흐름을 따라가며 진행했습니다.
next.js
create-next-app
을 통해 next.js 프로젝트 생성
npx create-next-app@latest # ts, eslint - yes
- 참고
eslint
- create-next-app을 통해 next에서 기본적으로 제공하는 ESLint(
eslint-config-next
) 설정
- typescript-eslint 설정
npm install --save-dev @typescript-eslint/eslint-plugin
eslint-config-next
가 @typescript-eslint/parser에 의존성을 가지고 있어서 따로 설치하지 않음.- .eslintrc.json
{ "plugins": ["@typescript-eslint"], "extends": [ "next/core-web-vitals", "plugin:@typescript-eslint/recommended", ], "rules": { "@typescript-eslint/no-unused-vars": [ "warn", { "varsIgnorePattern": "^_", "args": "all", "argsIgnorePattern": "^_", "caughtErrors": "all" } ] } }
- settings.json
{ "editor.codeActionsOnSave": { "source.fixAll.eslint": true } }
prettier
npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier
- .prettierrc.json
{ "semi": true, "trailingComma": "all", "singleQuote": true, "tabWidth": 2, "printWidth": 120, "endOfLine": "lf" }
- .eslintrc.json
{ ..., "extends": [ "next/core-web-vitals", "plugin:@typescript-eslint/recommended", "prettier" // 가장 마지막에 추가 ], }
- .vscode/settings.json
{ "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, // 아래 두 줄 추가 "editor.formatOnSave": true, // Tell VSCode to format files on save "editor.defaultFormatter": "esbenp.prettier-vscode" // Tell VSCode to use Prettier as default file formatter }
lint-staged
npm install --save-dev lint-staged
- package.json
{ ..., "lint-staged": { // 추가 "**/*.{js,jsx,ts,tsx}": [ "eslint --fix", "prettier --write" ] } }
- 아래 명령어로 lint-staged가 잘 동작하는지 확인
npx lint-staged
husky
npm install --save-dev husky
npx husky install
- package.json
{ ..., "scripts": { "prepare": "husky install" // 추가 }, ... }
- Hook 생성
npx husky add .husky/pre-commit "npx lint-staged"
.husky/pre-commit
파일 내용이 아래와 같은지 확인
#!/bin/sh . "$(dirname "$0")/_/husky.sh" npx lint-staged
- 참고
Emotion
- @emotion/react, @emotion/styled 설치
npm install --save @emotion/react @emotion/styled
React Query
npm install react-query
- react query 이름이 바뀌었다..
tanstack
- tanstack 설치해야함…….