๐ESLint?
ESLint๋ ES(EcmaScript) + Lint(์๋ฌ ์ฝ๋ ํ์) ํฉ์ฑ์ด๋ก Javascript์ฝ๋๋ฅผ ๋ถ์ํด ๋ฌธ๋ฒ์ ์ธ ์ค๋ฅ๋ ์ํฐ ํจํด์ ์ฐพ์์ฃผ๊ณ ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ์ ์ ์ง(ํฌ๋งทํ
)ํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์ฝ๋๋ก ์ฝ๋๋ฅผ ๋ง๋ค์ด์ค๋๋ค.
๐งฐ์ค์น ๋ฐ ์ค์
๐ ESLint ์ค์น
- ESLint๋ฅผ ์ค์นํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํฉ๋๋ค:
npm install eslint --save-dev
โ ์ค์ ํ์ผ ์์ฑ ๋ฐ ์ด๊ธฐํ
- ESLint ํจํค์ง๋ฅผ ์ค์น ํ ํ๊ฒฝ ์ค์ ํ์ผ์ด ์์ฑ๋์ง ์์๊ธฐ์ ์ด๊ธฐํ๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํฉ๋๋ค:
npx eslint --init
- ์ ๋ช
๋ น์ด ์
๋ ฅํ๋ฉด ์ฌ๋ฌ ์ ํ์ง๊ฐ ๋์ค๋๋ฐ, ํ๋ ์์ํฌ๋, ํ์
์คํฌ๋ฆฝํธ ์ฌ์ฉ ์ฌ๋ถ ๋ฑ์ ๊ฐ์ ์ํฉ์ ๋ง๊ฒ ์ ํํ๋ฉด ๋ฉ๋๋ค.
๐ .eslintrc.js
module.exports = {
"env": {
"browser": true,
"commonjs": true,
"es2021": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 13
},
"rules": {
}
};
- env : ํ๋ก์ ํธ ํ๊ฒฝ ์ค์
- extends : ESLint ํ์ฅ
- rules : ํ๋ก์ ํธ ๋ด์์ ๊ฐ์ ํ ๊ท์น ์ ์
๐์ฌ์ฉ๋ฒ
๐ ๊ฒ์ฌํ๊ธฐ
npx eslint ๊ฒ์ฌํ๊ณ _์ถ์_ํ์ผ๋ช
.js
npx eslint ๊ฒ์ฌํ๊ณ _์ถ์_ํ์ผ๋ช
.js --fix// ์๋ ์ฝ๋
- ํฐ๋ฏธ๋ ์ฐฝ์์ ์ค๋ฅ ํ์ธ ๊ฐ๋ฅ
npx eslint ์ํ๋_ํ์ผ๋ช
.js --fix ๋ช
๋ น์ด๋ก ์๋ ๊ต์
- ํ์ง๋ง, ์ด์ฒ๋ผ ํ์ผ๋ง๋ค ๊ฒ์ฌํ๋ ๊ฒ์ ๋นํจ์จ์
๐ ESLint ํจ์จ์ ์ผ๋ก ์ด์ฉํ๊ธฐ
- ESLint ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๋ฉด ์ ์ฅ ์ ์๋์ผ๋ก ๊ต์
- VS Code์์ โESLintโ ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น

- ๊ธฐ๋ณธ ์ค์ (Ctrl + . ) ์ฐฝ์์ โcode action on saveโ์
๋ ฅ
"editor.codeActionsOnSave": {
"source.fixAll": true,
},
"editor.formatOnSave": true,
- โsettings.json์์ ํธ์งโ์ ๋๋ฌ ์์ ๊ฐ์ด ํ์ผ ์ถ๊ฐ or ์์
๐ ์ฐธ๊ณ
โจ๊ธฐํ