๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป DEV/NextJS

[NextJS] EsLint ์„ค์ •ํ•˜๊ธฐ

by Rising Oneโ˜… 2023. 2. 28.
728x90
๋ฐ˜์‘ํ˜•
SMALL

NextJS ๋Œ€ํ‘œ์ด๋ฏธ์ง€







Eslint ๋Œ€ํ‘œ์ด๋ฏธ์ง€







 

ํ•„์š”์„ฑ 

ํ”„๋กœ์ ํŠธ์— ํ•จ๊ป˜ํ•˜๋Š” ํŒ€์›๋“ค์€ ์ €๋งˆ๋‹ค์˜ ์ฝ”๋”ฉ์Šคํƒ€์ผ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ ์Šคํƒ€์ผ์„ ์šฉ์ธํ•œ ์ฑ„, ํ˜‘์—…์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ›—๋‚  ์ฝ”๋“œ๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์ˆ˜๋งŽ์€ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ์•ˆ์„ ์ˆ˜๊ฐ€ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ๋ฒ• ์—๋Ÿฌ๋ฅผ ์ฐพ์•„ ํ‘œ์‹œํ•ด์ค„ ๋ฟ ์•„๋‹ˆ๋ผ, ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ์—๋Š” ๋†“์น  ์ˆ˜ ์žˆ์—ˆ๋˜, ์ฝ”๋”ฉ์Šคํƒ€์ผ์˜ ํ†ต์ผ-์ ๊ฒ€์„ ํ•ด์ฃผ๋Š” ESLint๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 


์ ‘๊ทผ

 

  1. ESLint๋ž€?


  2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

 

  3. ESLint ์„ค์น˜

 

  4. ESLint ์„ค์ •


๋ฐฉ๋ฒ•


  1. "ESLint" ๋ž€? 

"ESLint"๋Š” JavaScript ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒ๋œ ๋ฌธ์ œ(์—๋Ÿฌ) ํŒจํ„ด์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ •์  ์ฝ”๋“œ ๋ถ„์„ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

 

- ESLint๋ฅผ ์„ค์ •ํ•ด ์ ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋‹ค์ˆ˜์˜ ์†๊ธธ์„ ๊ฑฐ์นœ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งˆ์น˜ 1๋ช…์ด ๊ฐœ๋ฐœํ•œ ๋“ฏํ•œ ๋ชจ์Šต์„ ๋„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

- ์ž‘๊ฒŒ๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ ์ •๋„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜๊นŒ์ง€ ์ฑ…์ž„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (NextJS)

npx create-next-app <My-App-Name>

// TypeScript๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด 
npx create-next-app --typescript

์œ„ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด NextJS Application์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

  3. ESLint ์„ค์น˜

npm i eslint --save-dev

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ESLint๋ฅผ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค. 

 

 

  4. ESLint ์„ค์ •

npx eslint --init

์ด์ œ, ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ESLint ์„ธํŒ…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์„ธํŒ…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •(์„ธํŒ…)์„ ๋งˆ์น˜๊ณ  ๋‚˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํŒŒ์ผ๋กœ .eslintrc.js ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๊ณ , ์„ธ๋ถ€๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// .eslintrc.js ํŒŒ์ผ

module.exports = {
    "env": {
        "browser": true,
        "es2021": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:react/recommended",
        "plugin:@typescript-eslint/recommended"
    ],
    "overrides": [
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module"
    },
    "plugins": [
        "react",
        "@typescript-eslint"
    ],
    "rules": {
    }
}

 

์ด์ƒ์œผ๋กœ, NextJS application์—์„œ ESLint ์„ค์ • ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์งˆ๋ฌธ์„ ๋Œ“๊ธ€์„ ๋‹ฌ์•„์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค^^!

์˜ค๋Š˜๋„ ํŒŒ์ดํŒ…์ž…๋‹ˆ๋‹ค! 

 

728x90
๋ฐ˜์‘ํ˜•
LIST

๋Œ“๊ธ€