Stylelint๋ ๋ค์ํ CSS ๋ฌธ์ ๋ก๋ถํฐ ์ฐ๋ฆฌ๋ฅผ ๋ณดํธํฉ๋๋ค. JS์ ๋ํด์๋ ๋์ผํ ์์
์ ์ํํด ๋ณด๊ฒ ์ต๋๋ค.
eslint๋ ๊ฐ์ฅ ์ฑ์ํ๊ณ ํ์ํ๋ค๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ ๊ท์น ๋ชฉ๋ก์ ์ ๊ณต
npm install eslint --save-dev
package.json์์ ์ ๋ช ๋ น์ ์ถ๊ฐํฉ๋๋ค.
"lint:js": "eslint openlibrary/plugins/openlibrary/js/"
.eslintrc.json ์ถ๊ฐ
{
"root": true,
"env": {},
"globals": {
},
"rules": {
"no-extra-semi": "warn"
}
}
๋น๋ถ๊ฐ ๊ฒฝ๊ณ ํ๋๋ก ์ค๋ฅ๋ฅผ ์ค์ ํ๊ณ ๊ตฌ์ฑ์ด ๋ณํฉ๋๋ ์ฆ์ ๋๊ตฐ๊ฐ์ ํ๋ ฅํ์ฌ ์์ ์ฌํญ์ ์คํํ๊ณ ๋ณํฉ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ๋ณํฉํด์ผ ํฉ๋๋ค!
์๋ . ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ์ ๋ฅผ ์ง์ ํ ์ ์์ต๋๊น?
์ง๋ฌธ: eslint
๋ํ ์ฌ์ ์ค์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? https://standardjs.com ๋๋ https://github.com/airbnb/javascript ์ ๊ฐ์ด
์ฅ๊ธฐ์ ์ผ๋ก ์ํ์ง๋ง ์ด๋ฌํ ์ฌ์ ์ค์ ์ ์ ์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋งค์ฐ ์ข์ง ์์ ์ํ์ ์์ผ๋ฏ๋ก ๋ง์ ํผ๋(์ฝ๋ ๊ฒํ , ๋ฆฌ๋ฒ ์ด์ค ์ถฉ๋)๊ณผ ์๋ ์์ (๋๋ถ๋ถ์ ์ฌ์ ์ค์ ์ ์๋ ๊ณ ์น ์ ์์)์ด ๋ ๊ฒ์ ๋๋ค. ๊ท์น์ ์๋์ผ๋ก ์ถ๊ฐํ๋ฉด ์์ง๋ ฅ ์๊ณ ๊ต์ก์ ์ธ ๋ฐฉ์์ผ๋ก ์กฐ๊ธ์ฉ ๊ณต๊ฒฉํ๋ ๋ฐ ๋์์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค(์ฝ๋์ ๋ฌธ์ ์ ๋ํด ์กฐ๊ธ์ฉ ์์๊ฐ๋๋ค).
๋ฆฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ์๊ธํ ๋ฌธ์ (์ฝ๋์์ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์๋ ๋ฆฐํธ)๋ฅผ ํด๊ฒฐํ ๋ค์ ๋์ค์ ์ฌ๊ฐ ์๊ฐ์ ์ฌ์ ์ค์ (์ ํํ)์ ๋์ค์ ์ ์ฉํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ด๊ฒ ๋ง์ด ๋ผ?
๋ฌผ๋ก ์ ๋๋ค. ์ฝ๋ ํํ๋ ๋งค์ฐ ๋์ ์ ์์ต๋๋ค.
์ด PR์ด ๋ณํฉ๋๋ฉด Linting๊ณผ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ฆ์ em์ผ๋ก ์ง์ ํ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด no-extra-semi
๋ก ์์ํฉ๋๋ค ;)
@tamtamchik ๋์ค์ ๋ฌธ์ ๋ฅผ ๋ง๋ค ์ ์์ง๋ง "๊ฐ๋ฅํ ์ค๋ฅ"์ ์๊ณ ์๋ ์์ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ์ ๊ณต์ ํ ๊ฒ์์ ๋๋ค.
@mekarpeles ์ ํ๋ ฅํ์ฌ
๋๋ ์ฐ๋ฆฌ๊ฐ ๋ฎ์ ๋งค๋ฌ๋ฆฐ ๊ณผ์ผ์ ์ ๊ฑฐํ๊ธฐ๋ฅผ ์ํฉ๋๋ค!