Openlibrary: eslint๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ lintํ•˜์ž!

์— ๋งŒ๋“  2018๋…„ 10์›” 17์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: internetarchive/openlibrary

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"
    }
}

๋‹น๋ถ„๊ฐ„ ๊ฒฝ๊ณ ํ•˜๋„๋ก ์˜ค๋ฅ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊ตฌ์„ฑ์ด ๋ณ‘ํ•ฉ๋˜๋Š” ์ฆ‰์‹œ ๋ˆ„๊ตฐ๊ฐ€์™€ ํ˜‘๋ ฅํ•˜์—ฌ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‹คํ–‰ํ•˜๊ณ  ๋ณ‘ํ•ฉ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ณ‘ํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!

  • [ ] npm run lint:js ๋Š” "no-extra-semi" ๊ทœ์น™๊ณผ ๊ด€๋ จ๋œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • [ ] "npm run lint:js "๋Š” "npm run test"๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ์ด ๋ณ€๊ฒฝ์˜ ์ผ๋ถ€๋กœ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค!
Good First Issue Linting JavaScript 1 hacktoberfest

๋ชจ๋“  5 ๋Œ“๊ธ€

์•ˆ๋…•. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ์ €๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์งˆ๋ฌธ: eslint ๋Œ€ํ•œ ์‚ฌ์ „ ์„ค์ • ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? https://standardjs.com ๋˜๋Š” https://github.com/airbnb/javascript ์™€ ๊ฐ™์ด

์žฅ๊ธฐ์ ์œผ๋กœ ์›ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์‚ฌ์ „ ์„ค์ •์„ ์ ์šฉํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งค์šฐ ์ข‹์ง€ ์•Š์€ ์ƒํƒœ์— ์žˆ์œผ๋ฏ€๋กœ ๋งŽ์€ ํ˜ผ๋ž€(์ฝ”๋“œ ๊ฒ€ํ† , ๋ฆฌ๋ฒ ์ด์Šค ์ถฉ๋Œ)๊ณผ ์ˆ˜๋™ ์ž‘์—…(๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์ „ ์„ค์ •์€ ์ž๋™ ๊ณ ์น  ์ˆ˜ ์—†์Œ)์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทœ์น™์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ์‘์ง‘๋ ฅ ์žˆ๊ณ  ๊ต์œก์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์กฐ๊ธˆ์”ฉ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ฝ”๋“œ์˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์กฐ๊ธˆ์”ฉ ์•Œ์•„๊ฐ‘๋‹ˆ๋‹ค).

๋ฆฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ์‹œ๊ธ‰ํ•œ ๋ฌธ์ œ(์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฆฐํŠธ)๋ฅผ ํ•ด๊ฒฐํ•œ ๋‹ค์Œ ๋‚˜์ค‘์— ์—ฌ๊ฐ€ ์‹œ๊ฐ„์— ์‚ฌ์ „ ์„ค์ •(์„ ํƒํ•œ)์„ ๋‚˜์ค‘์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒŒ ๋ง์ด ๋ผ?

๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ํ˜•ํƒœ๋Š” ๋งค์šฐ ๋‚˜์  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด PR์ด ๋ณ‘ํ•ฉ๋˜๋ฉด Linting๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์„ em์œผ๋กœ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด no-extra-semi ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค ;)

@tamtamchik ๋‚˜์ค‘์— ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ "๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜"์— ์žˆ๊ณ  ์ž๋™ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ์€ ๊ณต์ •ํ•œ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.

@mekarpeles ์™€ ํ˜‘๋ ฅํ•˜์—ฌ

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋‚ฎ์€ ๋งค๋‹ฌ๋ฆฐ ๊ณผ์ผ์„ ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰