ESLint ๋ผ๊ณ ํ๋ ๋๊ตฌ๋ ์ฝ๋ ์คํ์ผ์ด๋ ํฌ๋งท ๋ฑ์ ์ก์์ค๋ค.. ๋๋ airnbn ํด๋ก ์ ํ๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์คํ์ผ์ airnbn ๊ฒ์ ์ ์ฉํ๋ค. ์ถ๊ฐ์ ์ผ๋ก google, facebook๋ ์์๋ ๊ฑฐ ๊ฐ๋ค.
ESlint์ค์น ํ ๋ด๊ฐ ๋ฐ๋ฅผ ์คํ์ผ์ ์ค์น๋ ์ถ๊ฐ์ ์ผ๋ก ํ์ํ๋ค. ex) eslint-config-airbnb
๋ชจ๋ ์ค์น์ ์ค์ ์ ๋๋ด๊ณ ๋ค์ ์คํ์ ํ๊ฒ๋๋ฉด
์ด์ ์ ์์๋ ์ค๋ฅ๋ค์ด ๋ค๋ค๋ค๊ฐใฑ ๋ํ๋๋ค..๋๋ฅ
์ด ๋ชจ๋ ์ค๋ฅ๋ค์ด eslint ์คํ ํ์ ๋ฐ์ํ ์ค๋ฅ๋ค์ด๋ค.
์์ฐ,, ์คํ ์ด์ ์๋ ๊น๋ํ๋ ํฐ๋ฏธ๋์ด ์ด์ ์ค๋ฅ๋ก ๊ฐ๋์ฐจ์ก๋ค,,,!
linkebreak-style, react-in-jsx-scope, react/prop-type ๋ฑ๋ฑ,, ์ ๋ง ์๊ฒฉํ๊ตฌ๋,,,๐ญ
์๋ฌ๋์ด ๋๋ฌด ๋ง๊ธฐ์ ๊ฐ์ฅ ๋์ ๋ง์ด ๋ฐ๋ ๊ฑธ ๋ฝ์์ ํด๊ฒฐํด๋ดค๋ค.
linkbreak-style: ์ค์ ๋์ CRLF๊ฐ ์๋๋ผ LF๋ก ๋ณ๊ฒฝํด์ผํ๋ค๋ ์ค๋ฅ๋ค.
์ด ์ค๋ฅ๋ฅผ ๊ฐ๋จํ๊ฒ ํํผํ๋ ๋ฐฉ๋ฒ์ ์ ํํ๋ค.
.eslintrc.js ํ์ผ์์ ๊ท์น์ ์ ํ๋ rules ์์ฑ์ด์๋ค. ๊ฑฐ๊ธฐ์๋ค ๋ฐ์ํ ์ค๋ฅ๋ช
๊ณผ ์ฒ๋ฆฌ๋จ๊ณ๋ฅผ ์์ฑํ๋ค.
๋จ๊ณ๋ฅผ 0์ผ๋ก ์ค์ ํ๊ณ ๋๋ linkbreak-style๊ณผ ๊ด๋ จํ ์ค๋ฅ๊ฐ ๋ชจ๋ ๋จ์ง์๊ฒ ๋์๋ค!
(๋จ๊ณ์๋ 0, 1, 2๊ฐ ์๋๋ฐ 0์ off๋ฅผ ์๋ฏธํ๋ฉฐ
์ด ๊ท์น์ ๋ฌด์ํ๊ฒ ๋ค๋ ๊ฒ์ด๊ณ 1์ warn์ผ๋ก ๊ฒฝ๊ณ ์ฐฝ๋ง ๋์ฐ๋ ๊ฒ 2๋ error๋ฅผ ๋ฐ์์ํค๋ฉฐ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํ๊ฒ ๋๋ค. )
quotes: ๊ฒฝ๊ณ ๊ธ์์ ์ ์ ์๋ฏ์ด, "๋ง๊ณ '๋ฅผ ์ฌ์ฉํ๋ผ๋ ๋ง์ด๋ค.
์ด๋ฏธ ๋ด ์ฝ๋๋ prettier์ ์ํด " ๋ก ์ ๋ณต๋์ด์๋ ์ํ์ฌ์ ์ผ์ผ์ด ๊ณ ์น๊ธฐ์ง๋ ๋ชปํ๊ฒ ๋ค...ใ
arrow-body-style: ์ ๋ก์ฐ ํจ์ ์ฌ์ฉ ์, return ํค์๋ ๋ฐ ์ค๊ดํธ๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ ๋ฐ๋ก ๊ฐ์ ๋ฐํํ๋๋ก ์ ์ธํด๋ผ๋ ๋ง์ด๋ค.
const Logo = () => {
return (
<a className="navbar-brand">
<img src={picSrc}></img>
</a>
);
};
return ํค์๋ ๋ฐ ์ค๊ดํธ๋ฅผ ์์ ์ฃผ๋ฉด ๋๋ค.
const Logo = () => (
<a className="navbar-brand">
<img src={picSrc}></img>
</a>
);
์ธ์๋ react/no-unknown-property
๋ class => className ๋ณ๊ฒฝ
react/react-in-jsx-scope
๋ jsx์ฝ๋๊ฐ ์ฌ์ฉ๋๋ ๊ณณ์ import or require react
eslint๊ฐ ์น์ ํ๊ฒ ์๋ฌ์ฌํญ์ ๋ํด ์ค๋ช ์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ํด๊ฒฐํ๋๋ฐ ๊ทธ๋ฆฌ ์ด๋ ต์ง ์์๊ฑฐ๋ผ ์์ํ๋ค ! ๐
๋ด๋ถํด eslint์ค์ ๋ถํฐํ๊ณ ์ฝ๋ ์์ฑ์ ํด์ผ๊ฒ ๋ค,, ์ค๊ฐ์ ํด๋ฒ๋ฆฌ๋ ใ
ใ
ใ
ใ
์,,,ใ
ใ
์ํผ ์ฌ์ฉํ๊ณ ๋์ ์ ๋ง ๊ฐ์๋ก ์ผ๊ด์ฑ์๊ฒ ์์ฑ์ ํ๋ ๋ ๊ฐ์ ์ฌ๋ํํ
์ ๋ง ์์ฑ๋ง์ถค์ด๋ผ๋ ์๊ฐ์ด๋ค๊ณ
ํนํ ํ์
ํ ๋ ์ ๋ง ์ ์ฉํ ๋๊ตฌ๋ค. ๐
eslint ๊ณต์ ์ฌ์ดํธ์ ๋ฐ์ํ๋ ์๋ฌ์ ์ฌ๋ก๋ค์ด ์ ๋์์์ผ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ฏ ํ๋ค :)
https://eslint.org/docs/rules/