Tslint: ์‹œ๊ณ„ ์˜ต์…˜ ์ถ”๊ฐ€

์— ๋งŒ๋“  2017๋…„ 08์›” 23์ผ  ยท  14์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: palantir/tslint

๊ทธ๋Ÿฌํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜์—ฌ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Declined Feature Request

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ์ด๊ฒƒ์ด ํ์‡„๋˜์–ด์•ผ ํ•˜๊ณ  ์ดˆ์ ์ด ํ˜„์žฌ ๋‹ค๋ฅธ ๊ณณ์— ์žˆ๋”๋ผ๋„ ์ ์–ด๋„ ๋กœ๋“œ๋งต์— ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณด๊ธฐ๊ฐ€ tsc์˜ tsc -w ์— ๋น„ํ•ด ๋„ˆ๋ฌด ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

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

8์›” 24์ผ ์ดํ›„๋กœ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ด€์ฐฐํ•˜๊ธฐ ์œ„ํ•ด nodemon์„ ์‚ฌ์šฉํ•˜๊ณ  npm ์Šคํฌ๋ฆฝํŠธ์—์„œ tslint๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ์˜ˆ https://github.com/ryancat/create-ts-library/blob/master/package.json#L9

nodemon์ด ์ข…๋ฃŒ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ์˜ค๋ฅ˜ ์ฝ”๋“œ 2๋กœ ์ข…๋ฃŒํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์˜ ํ•„์š”์„ฑ์„ ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค

์—ด์ด ๋‚˜์š”. ๊ทธ๋ฆฌ๊ณ  ์œ ์ผํ•œ ์ฒ˜๋ฐฉ์€ more --watch ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ฆ๋ถ„ ์žฌ์‹คํ–‰์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ทผ๋ณธ์ ์œผ๋กœ ์žฌ์„ค๊ณ„ํ•ด์•ผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„ํ•˜๊ธฐ _๋งค์šฐ ์–ด๋ ค์šด_ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ nodemon ๋˜๋Š” https์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ธฐ์กด ๊ฐ์‹œ ๋„๊ตฌ์™€ tslint๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. //www.npmjs.com/package/watch

์ ์ง„์ ์ธ ์žฌ์‹คํ–‰์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ทผ๋ณธ์ ์œผ๋กœ ์žฌ์„ค๊ณ„ํ•ด์•ผ ํ•จ

FWIW๋Š” ๋งค์šฐ ์–ด๋ ต๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ํƒ€์‚ฌ ๋„๊ตฌ์—์„œ์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ ์‹œ ๋ชจ๋“  tslint๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๊ฑด์ „ํ•œ ์ดํ•ด์™€ ํ•จ๊ป˜ ์ด ์š”์ฒญ์— +1ํ•ฉ๋‹ˆ๋‹ค.

โŒš ์ด๊ฑฐ.

๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์ •๋ง ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ๋„๊ตฌ๋Š” ์‹ค์ œ๋กœ ์ด ๋™์ž‘์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. https://github.com/guidojo/multipleTypescriptCompilers#readme

์ด ๋„๊ตฌ๋Š” ํ˜„์žฌ tsc ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐ ์‹คํ–‰ ํ›„์—๋Š” ๊ฐ ํŒŒ์ผ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ฆฐํŠธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ปดํŒŒ์ผ์— ์˜ํ•ด ์ค‘๋‹จ๋˜๋ฉด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. :)

์•„๋ฌด๋„ ์ด๊ฒƒ์„ ์•„์ง ์กฐ์‚ฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ?

๊ทธ๋™์•ˆ ๋‚ด npm ์Šคํฌ๋ฆฝํŠธ์—์„œ onchange ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

prettier ๋ฌธ์„œ์—์„œ ๋ณธ ํ›„: https://prettier.io/docs/en/watching-files.html

onchange ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. @alexburner์˜ ์ œ์•ˆ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ˜„์žฌ tslint์™€ stylelint ๋ชจ๋‘์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

{
    "lint": "concurrently \"yarn tslint:once\" \"yarn stylelint:once\" && onchange 'src/**/*.*' -- concurrently \"yarn tslint:once\" \"yarn stylelint:once\"",
    "tslint:once": "tslint -p . -c ./tslint.json --fix './src/**/*.+(ts|tsx)'",
    "stylelint:once": "stylelint --fix **/*.scss",
}

CLI ์‚ฌ์šฉ ์‚ฌ๋ก€์—๋Š” onchange ์†”๋ฃจ์…˜์ด๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฝ์šฐ Node API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ ์œ„์— ๊ฐ์‹œ์ž๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TSLint์˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๊ฐœ๋ฐœ ๋…ธ๋ ฅ์„ ์ง‘์ค‘ํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธ€์„ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ํ์‡„๋˜์–ด์•ผ ํ•˜๊ณ  ์ดˆ์ ์ด ํ˜„์žฌ ๋‹ค๋ฅธ ๊ณณ์— ์žˆ๋”๋ผ๋„ ์ ์–ด๋„ ๋กœ๋“œ๋งต์— ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณด๊ธฐ๊ฐ€ tsc์˜ tsc -w ์— ๋น„ํ•ด ๋„ˆ๋ฌด ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

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