--exclude
CLI ํ๋๊ทธ๋ TSLint v3.6๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ด์ .tslintignore
ํ์ผ์ ๋ํ ๊ธฐ๋ฅ ์์ฒญ์ ์ถ์ ํฉ๋๋ค.
์ฐธ์กฐ: https://github.com/madskristensen/WebEssentials2013/issues/617
JsHint ๋ฌธ์ ์๋ cli ์ต์ ์์ ์ ์ธ๋ฅผ ์ํ ๋ ๊ฐ์ง ํ๋๊ทธ๊ฐ ์์ต๋๋ค.
--๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค
๋ฆฐํธ๋ฅผ ์ํ์ง ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
--์ ์ธ ๊ฒฝ๋ก
๊ณ ์ ํ .jshintignore ํ์ผ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด JSHint๊ฐ .gitignore ํ์ผ์ ๊ฐ๋ฆฌํค๋๋ก ํ๊ณ ๊ธฐ๋ณธ .jshintignore ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ผ๋ถ ๋ฐฐ์น/์๋ ์คํ ์คํฌ๋ฆฝํธ๊ฐ lint๋ฅผ ์คํํ ๋ ํ์ผ ๋ฐ ํด๋๋ฅผ ์ ์ธํ๋๋ก .tslintignore ํ์ผ์ ์ ๋ฌํ ์ ์๋๋ก ์ ์ฌํ ํ๋๊ทธ๋ฅผ ์ ๊ณตํ์ธ์.
JsHint์ ์ด ๊ธฐ๋ฅ ๊ตฌํ์ ์ฐธ์กฐํ์ญ์์ค. cli.js#L182-L208 ๋ฐ ํด๋น ํธ์ถ์; ์์ง ๊ธฐ๋ฅ .
์ข์ ์ ์. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์กฐ์ฌํ ๊ฒ์ ๋๋ค.
+1
TSD์ ๊ฒฝ์ฐ ์ ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํ ๋ ์ฌ์ฉ์ ํ์ดํ ํด๋์ ์ด๊ฒ์ ์์ฑํ๊ณ ์ถ์ต๋๋ค.
+1
์ด๋ ๋ฆฐํธ ์ค๋ฅ๋ฅผ โโ์ฐจ๋จ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํฉ๋๋ค. ๋ด ์ฝ๋๊ฐ ๋ฒค๋ ์ฝ๋๊ฐ ์๋๋ผ ๋ฆฐํธ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค.
+1
+1
+1 ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ์๊ฒ ํ์ํ ์๋ฃจ์ ์ ๋๋ค. d.ts ํ์ผ์์ ๋ง์ tslint ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์์ฑํ์ง ์์ ์ฝ๋๋ฅผ ๋ฆฐํธํ๊ณ ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋์ ํน์ ํ์ผ์ ๋ชจ๋ ์ ์ธํ ์ ์๋ค๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ด๊ฑฐ ํด๋ณด๊ณ ์ถ์๋ฐ ์ด๋์ ๋ฃ์ด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค์. ์ด๊ฒ์ด cli-feature๊ฐ ๋๊ธฐ๋ฅผ ์ํฉ๋๊น ์๋๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ์ด๊ฒ์ ์ง์ํ๊ธฐ๋ฅผ ์ํฉ๋๊น?
๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ lint() ๋ฉ์๋๊ฐ ๊ฒฐ๊ณผ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ์ด์ํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ผ์ข
์ ๋๋ฏธ ๋น ๊ฒฐ๊ณผ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
์งํ ์ค์ธ ์์
์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. ํ์ง๋ง ์์ ๋ด์ฉ์ ํ์คํ์ง ์์ต๋๋ค.
https://github.com/DickvdBrink/tslint/compare/palantir :master...Di ckvdBrink:ignoreFile
์ฐ๋ฆฌ๋ Visual Studio์ Web Essentials ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ์๊ฒ ์ด์์ ์ธ ์ํฌํ๋ก๋ typings\
์ ๊ฐ์ ํญ๋ชฉ์ ํฌํจํ๋ .tjshintignore ํ์ผ์ ์ง์ ํ๋ ๊ฒ์
๋๋ค. ์ด ํ์ผ์ ํด๋น ํด๋์ ๋ชจ๋ d.ts ํ์ผ์ ๋ฌด์ํฉ๋๋ค. Web Essentials๊ฐ cli-feature๋ฅผ ์ฌ์ฉํ๋์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋์ง ์ ํํ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด์ ๋ํ ์๋ฃจ์
์ด ์ด๋ฏธ ์กด์ฌํ ์ ์์์ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ์ด ์ค๋ ๋๋ฅผ ์ฐพ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ง๊ธ ์ฝ๊ฐ ํผ๋์ค๋ฝ์ต๋๋ค. https://github.com/madskristensen/WebEssentials2013/issues/617
๋๋ ๊ทธ๋ค์ด cli๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
https://github.com/madskristensen/WebEssentials2013/blob/aaa83c3f6f7c9b051d7ef34be8498c6b67f37fca/EditorExtensions/TypeScript/Linters/TsLintCompiler.cs
๋๊ตฐ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ง๋ค์๊ธฐ ๋๋ฌธ์ ์ข ๋ฃ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ ์ธ์ฉ๋ฌธ์ ์ฐธ์กฐํ์ธ์.
Would you like to send them a feature request?
I see somebody already has. Thanks :-)
์, ๋ง์ด ๋๋๊ตฐ์. ์๋ชป ์ฝ์์ต๋๋ค.
CLI๋ฅผ ํตํด ๊ตฌํํ๋ ๊ฒ์ด ์ง๊ธ์ผ๋ก์๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. grunt-tslint๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ์ด๋ฏธ grunt์ ํ์ผ/๋๋ ํ ๋ฆฌ ๊ธ๋ก๋ฒ๋ฅผ ํตํด ํ์ผ์ ์ ์ธํ ์ ์์ต๋๋ค.
๋ํ Web Essentials: https://github.com/madskristensen/WebEssentials2013/issues/589์ ๋ชจ๋ ๋ ธ๋ ๊ธฐ๋ฐ ์๋น์ค์ ๋ํ ์ ์ญ ์ ์ธ๋ฅผ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ tslint์ ํด๋น ๊ธฐ๋ฅ์ด ์๋ค๋ ๊ฒ์ ๋๋ฆ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ ๋ฐ์ดํธ: web-essentials์์ ์ด ๊ธฐ๋ฅ์ ์ผ๊ฐ ๋น๋ v2.2.4์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ด๊ฒ์ ์ฐ์ ์์๋ฅผ ์ง์ ํด์ผ ํ๋ ์๋์ ์ผ๋ก ์ค์ํ ๊ธฐ๋ฅ์ธ ๊ฒ ๊ฐ์ต๋๋ค. SO ์ง๋ฌธ ์์ ์ด ๊ธฐ๋ฅ์ ๋ํ ๊ด์ฌ์ ๊ธฐ๋กํ๊ณ ์ถ์์ต๋๋ค.
ํนํ .tslintignore
ํ์ผ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ง๋ง --exclude
CLI ์ต์
์ ์ถ๊ฐํ๋ ๋ ๊ฐ๋จํ ์์ด๋์ด๋ฅผ ์ ํธํฉ๋๋ค.
CLI ํ๋๊ทธ์์ ์ด๊ฒ์ ๋ค์ ๊ตฌํํ๋ ๊ฒ๋ณด๋ค tsconfig.json(#858)์ ํตํด ์ด๊ฒ์ ์ง์ํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค...
ํ , ๊ทธ๊ฒ์ ์ด๋ ค์์ ๋น์ ์ด ๋ฆฐํธ์ ๋ค๋ฅธ ํ์ผ์ ์ปดํ์ผํ๊ธฐ๋ฅผ ์ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ ์ฌ์ ์ผ๋ก tsconfig.json
๋ฅผ ์ฌ์ฉํ ๋ค์ --exclude
๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ์ ์ผ๋ก ํฌํจ๋ ํ์ผ ์ค ์ผ๋ถ๋ฅผ ๋ฆฐํธํ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
CLI์ ๋ฌ๋ฆฌ ์ด๊ฒ์ tslint.json ํ์ผ์ ์์ฐ์ค๋ฝ๊ฒ ๋ง์ง ์๊ณ https://github.com/palantir/tslint/blob/master/src/tslint ์์ "ignorePaths"๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๋ฌด์ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
+1
+1, .tslintignore๋ ํ๋ฅญํ ๊ฒ์ ๋๋ค.
.tslintignore์ ๊ฒฝ์ฐ +1 ๋๋ tsconfig.json์ ํน์ ๊ฒฝ๋ก๋ฅผ ๋ฌด์ํ๋ ์ต์
์ถ๊ฐ
https://github.com/bbatsov/rubocop#includeexcept -files์ ์ ์ฌํ ์ ์์ต๋๋ค.
๊ตฌํํ๋ ๋ฐ ๋์์ด ํ์ํ์ญ๋๊น?
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก #1006์ ๊ณง ๋ณํฉํ์ฌ ๊ฐ๋จํ CLI --exclude
์ต์
์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ๋๋ถ๋ถ ๊ฑฐ๊ธฐ์ ๋๋ฌํฉ๋๊น? tslint
์์ ์ถ๊ฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ง๋ glob / exclude ์ง์(grunt / gulp / ๋ฑ)์ด ์์ ๊ฒ์
๋๋ค. tslint.json
์์ ์ง์ํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํ๊ฐ์?
๋๋ ๋ ์ด์ NPM ์คํฌ๋ฆฝํธ์์ tslint๋ฅผ ํธ์ถํ์ง ์์ง๋ง NPM์ด ํฌ๋ก์ค ํ๋ซํผ glob ์ง์์ ์ ๊ณตํ์ง ์์ผ๋ฉฐ (์ ๋ ๊ทธ๋ ๊ฒ ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์) ๊ทธ๋ ๊ฒ ํ๋ ์ฌ๋๋ค์๊ฒ ์ค์ํ ์ ์์ต๋๋ค.
tslint.json
ํ์ผ์ lint๋ฅผ ์ํ์ง ์๊ฑฐ๋ ์ํ์ง ์๋ ํ์ผ์ ๋ํ ์ต์
์ ์ถ๊ฐํ๋ ๊ฒ์ ์ข์ ์๊ฐ์ด ์๋๋๋ค. ๊ทธ๋ฅ ๊ฑฐ๊ธฐ์ ๋ง์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ jshint ๊ฐ ๊ตฌ์ฑ๋๋ ๋ฐฉ์๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. ์, ๋ ๊ฐ์ง ๋ค๋ฅธ ๋๊ตฌ์ด์ง๋ง ์ค์ ๋ก๋ ๋์ผํ ์์
์ ์ํํฉ๋๋ค. TS๋ JS์ ์์ ์งํฉ์ด๊ธฐ ๋๋ฌธ์ ๋ ์ฌ์ด์ ์ด๋ ์ ๋ ์ผ๊ด์ฑ์ด ์์ด์ผ ํฉ๋๋ค. JS์ TS ๊ฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด .tslintignore
ํ์ผ( .jshintignore
์ ๊ฐ์)์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. Linting์ ์ปดํ์ผ๋์ง ์์ผ๋ฏ๋ก tsconfig.json
์ ๋ณ๋๋ก ์ ์งํ์ญ์์ค.
CLI ์ต์ ์ +1, ์ข์ ์์์ ๋๋ค.
#1006์ด ๋ณํฉ๋์๊ณ ํ ๋ฌ ์ ๋ ์ ์ ๋ฆด๋ฆฌ์ค์ ์์๋ค๋ ์ ์ ์ธ๊ธํ๊ณ ์ถ์์ต๋๋ค. ๋ฐ๋ผ์ ์ต์ ๋ฒ์ ์ TSLint CLI๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ exclude
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
+1
+1
+1
์ฌ๋๋ค์ด ์ฌ๊ธฐ์ +1ํ๋ ๊ฒ์ ๋ฌด์์
๋๊น? --exclude
ํ๋๊ทธ๋ v3.6๋ถํฐ CLI์์ ์ฌ์ฉํ ์ ์์ด glob(ํ์ผ, ๊ฒฝ๋ก ๋ฑ)์ ์ ์ธํ ์ ์์ต๋๋ค.
@adidahiya ์๋ฅผ ๋ค์ด WebStorm์์๋ ๋์์ด ๋์ง ์์ต๋๋ค. ํ๋๊ทธ๋ฅผ ์ง์ ํ๋ ์ต์ ์ด ์์ต๋๋ค.
WebStorm ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ธฐ๋ฅ ์์ฒญ์ด์ด์ผ ํ๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง ts-lint ์ธก์์ ๊ตฌํํ๊ธฐ๊ฐ ๋งค์ฐ ์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ๋ฆฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ํ๋ฉ๋๋ค. ์ ๊ทธ๋ ๊ฒ ๋ง๋ค์ง ์์ต๋๊น?
@fyodorvi ๋ฉ์ ธ์, ๋ฌธ์ ์ ๋ชฉ๊ณผ ์ค๋ช
์ ์
๋ฐ์ดํธํ์ต๋๋ค. tslint.json
๋ฅผ ํด์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก .tslintignore
ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํด์ํ๊ณ ์ถ์ ๊ฒ์
๋๋ค.
์ ํ์ผ์ ์ฅ๋จ์ ๋ tslint.json
์ ์ ํ๋ ?
WebStorm๊ณผ ํจ๊ป tslint๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ฌ๋๋ค์ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
node_modules ํด๋์ ๋น tslint.json
ํ์ผ(๋ด๋ถ '{}' ํฌํจ)์ ๋ฃ๊ณ WS์์ 'tslint.json ๊ฒ์' ์ต์
์ ํ์ฑํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด node_modules ํด๋์ ๋ํ tslint์ ๋ชจ๋ ๊ท์น์ด ์์ ํ ์ฌ์ค์ ๋๊ณ ๊ณต๊ธ์
์ฒด ์ฝ๋์ ๋ํด ์นจ๋ฌตํฉ๋๋ค(๋๋ ์ํ๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ ํน์ ๊ท์น์ ์ถ๊ฐํ ์ ์์).
๋๋ ์ด ์ค๋ ๋๋ฅผ ๋ฐ๋ผ ํน๋ณํ vscode๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ ์ธํ ์ ์์์ต๋๋ค(์ด๋ฆ์ด .tslintignore ์ ์ฉ์ผ๋ก ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ๋ถํฐ). ๋ณ๋์ ๋ฌธ์ ๊ฐ ์๊ณ vscode ๊ด๋ จ tslint ์ ์ธ์ ๋ํ ์ต๊ทผ PR ์ด ์์์ vscode์ ์ ์ธ๋ฅผ ํตํฉํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์๋ฆฌ๊ณ ์ถ์์ต๋๋ค.
@adidahiya tslint.json ๋ด๋ถ์ dirs ๋๋ ํ์ผ ๋ฐฐ์ด์ด ์๋ ํ๋๋ก ์ถฉ๋ถํด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ์ ์ด๋ฏธ ๊ตฌ์ฑ ํ์ผ์ด ์ ์๋์ด ์์ ๋ ์ด ๋น์ฆ๋์ค๋ฅผ ์ ์ดํ ๋ค๋ฅธ ํ์ผ์ ๋ํด ๊ฑฑ์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
@Karabur ๊ทํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ํ์ง ์์ต๋๋ค. ๋น ๊ท์น ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ์๋ํ๋๋ฐ ๋๋ฝ๋ ๊ฒ์ด ์์ต๋๊น?
ํ์ผ ํ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ด๊ฒ์ tsconfig,json์ด ์๋ํ๋ ๋ฐฉ์๊ณผ๋ ์ผ์นํฉ๋๋ค.
$ tslint.json
์ exclude
์ต์
์ด ์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค(์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค๋ฉด ํ๋์ ํ์ผ๋ง). ์ด๋ $ tsconfig.json
์ glob
๋ฌด์ ์น์
์ ์ด๋ฆ์
๋๋ค. ์ (์, tsconfig.json ํฌํจ/์ ์ธ๋ ์ด์ TypeScript ์ต์ ์์ glob์ ์ง์ํฉ๋๋ค)
๋๊ตฌ๋ ์ง eslint๊ฐ ์ด๊ฒ์ ์ณค์ ๊ฒ์ด๋ผ๊ณ ํ์ ํ๋ฏ๋ก eslint๊ฐ ๋ฌด์์ํ๋์ง ์๊ณ ์์ต๋๊น? :์ฅ๋ฏธ:
ํ์ฌ tslint.json
๋ ๋ฆฐํธ๋๋ _๋ฌด์์_ ์ ์ดํ ์ ์์ผ๋ฉฐ ํ์ผ์ด ๋ฆฐํธ๋๋ _๋ฐฉ๋ฒ_๋ง ์ ์ดํฉ๋๋ค. ์ค์ ๋ก ์ค์ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ TSLint CLI๋ ์ค์ ๋ก ๋์ผํ ์คํ์์ ์๋ก ๋ค๋ฅธ ๊ท์น์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ํ์ผ์ ๋ฆฐํธํ ์ ์์ต๋๋ค.
๋๋ tslint.json
์ exclude
์ต์
์ ๋ฐ๋ํ์ง ์์ง๋ง ๊ฒฐ๊ตญ ์ฝ๊ฐ์ ํจ๋ฌ๋ค์ ์ ํ์ด ๋ ์ ์์ผ๋ฏ๋ก ์ ์คํ๊ฒ ์๊ฐํด์ผ ํฉ๋๋ค.
PS @basarat ํผ๋๋ฐฑ์ ๋ค์ ์ ์์ด ํญ์ ๊ธฐ์ฉ๋๋ค. ์ค๋์ TS gitbook์ ๋ง ์ฝ์์ต๋๋ค ๐
๋ฐฉ๊ธ 0.3.0
๋ฒ์ ๊ณผ ํตํฉ๋ tslint ๊ฐ ์๋ ์ ๋ฒ์ ์ lm์ ์ถ์ํ์ต๋๋ค.
๋ด ๋๋์ ์ํ ํ ์ฌ๊ธฐ์ ๋ด๊ฐ IDE ํตํฉ์ ์ํด ํจ๊ป ๊ฐ๋ ๋์์ธ์ ์์ฝ์ด ์์ผ๋ฉฐ ์๋ฆ๋ต๊ฒ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
tsconfig.json
์ ๋ชจ๋ ํ์ผ์ .d.ts
ํ์ผ์ ์ ์ธํ๊ณ ๋ฆฐํธ๋ฉ๋๋ค.tslint.json
๋ tsconfig.json
์ findup
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.๋๋ ์ด๊ฒ์ ์ฌ๊ธฐ์์๋ ๋ฌธ์ํํ์ต๋๋ค: https://basarat.gitbooks.io/alm/content/features/lint.html ๋ค๋ฅธ IDE ํตํฉ์ ๋ํ ์์ด๋์ด/์์ค๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ์ญ์์ค:rose:
@basarat ๋๋ ๊ทธ ์ ํ์ด ์๋ฒฝํ๋ค๊ณ ์๊ฐํฉ๋๋ค! ์์ ์ ์์ง ์์จ๋ดค๋๋ฐ ์กฐ๋ง๊ฐ ํด๋ด์ผ๊ฒ ๋ค์ ๐ป
+1 ๋๊ธ ๊ฒ์๋ฅผ ์ค๋จํ๊ณ ์๋ ๋ฌธ์ ์ค๋ช ์ ๋ด์ฅ๋ Github upvoting ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ธ์. ์ด์ +1 ๋๊ธ์ ์ญ์ ํ๊ฒ ์ต๋๋ค.
3๋ ์ด ์ง๋ฌ๋๋ฐ ์์ง๋ ์คํ์ด ์๋๊ณ ์๋์? ์ด๊ฒ์ IMO์์ ๊ฐ์ฅ ์ฌ์ํ๊ณ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
3๋ ์ด ์ง๋ฌ๋๋ฐ ์์ง๋ ์คํ์ด ์๋๊ณ ์๋์? ์ด๊ฒ์ IMO์์ ๊ฐ์ฅ ์ฌ์ํ๊ณ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
๊ฒฐ๊ตญ OSS์ ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ PR์ ์ ์ถํ์ญ์์ค.
ํ์ฌ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--exclude {node_modules,.git,cache}
{}
์ฐ์ฐ์๊ฐ ์๋ํ์ง ์๊ณ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ด ๋ณด์ด์ง ์์ต๋๋ค...
@monolithed :
--exclude node_modules --exclude .git --exclude cache
๋น์ ์ด ์ํ๋ ๊ฒ์ํด์ผํฉ๋๋ค
3๋ ์ด ์ง๋ฌ๋๋ฐ ์์ง๋ ์คํ์ด ์๋๊ณ ์๋์? ์ด๊ฒ์ IMO์์ ๊ฐ์ฅ ์ฌ์ํ๊ณ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
๊ฒฐ๊ตญ OSS์ ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ PR์ ์ ์ถํ์ญ์์ค.
PR์ ์ ์ถํ์ต๋๋ค: https://github.com/palantir/tslint/issues/2409
@abenhamdine ๋๊ตฌ์๊ฒ ๊ฒํ ๋ฅผ ์์ฒญํด์ผ ํ๋ ์์ด๋์ด๊ฐ ์์ต๋๊น?
์ ๋๋ก ๋ PR์ ์ ์ถํ์ง๋ง ๋ฐ๋ ๋์ ์๋ฌด๋ฐ ์กฐ์น๋ ์ทจํ์ง ์์ ์ํ์์ ๋ง ๊ทธ๋๋ก ์๋ฐฑ ๋ช ์ ์ฌ๋๋ค์ด ์ํ๋ 3๋ ์ด์ ๋ ๋ฌธ์ ์ ๋ถ๋ช์ณค์ต๋๋ค.
๋ฒํ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋งํฌ๋ PR #2409๋ tslint.json
์ ์๋ก์ด ๊ตฌ์ฑ ์ต์
์ ๋ํ ๊ฒ์ผ๋ก ์๋ ๋ฌธ์ ( .tslintignore
ํ์ผ)์ ์์ ํ ๋์ผํ์ง ์์ต๋๋ค. ํ์ง๋ง ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ ๋จ๊ณ์
๋๋ค. CR ๋๊ธ์ ๋ ๋จ๊ฒผ์ต๋๋ค.
+1
์ต์
:
.tslintignore
ํ์ผ์ ์ ์ฅํฉ๋๋ค.exclude
.๊ทธ๋ฐ๋ฐ ๊ธฐ๋ฅ์ด [email protected]
์ ์ถ์๋์์ต๋๋ค.
์ค๋ฅธ์ชฝ. ์์:
ํ๋ก์ ํธ์ .vscode
๋ผ๋ ์ด๋ฆ์ ํด๋๋ฅผ ๋ง๋ค๊ณ settings.json
์์ ํ์ผ์ ๋ง๋ญ๋๋ค.
{
"tslint.exclude": "**/app/models/**"
}
/app/models/์ ๋ชจ๋ ํ์ผ์ ๋ฌด์ํฉ๋๋ค. ์์ ๋กญ๊ฒ ํํ์ ๊ฐ์ ํด ๋ณด์ธ์. :)
+1
+1
.tslintignore
ํ์
์ค, ์ด๊ฒ์ linterOptions
์์ ์ง์ํด์ผ ํฉ๋๋ค. https://palantir.github.io/tslint/usage/configuration/์ ๋ฐ๋ผ:
linterOptions?: { exclude?: string[] }
:
exclude: string[]
: globs์ ๋ฐฐ์ด. ์ด glob๊ณผ ์ผ์นํ๋ ๋ชจ๋ ํ์ผ์ ๋ฆฐํธ๋์ง ์์ต๋๋ค. ๋ชจ๋ ์ ์ธ ํจํด์ ์ง์ ๋ ๊ตฌ์ฑ ํ์ผ์ ์๋์ ์ ๋๋ค.
์ด๊ฒ์ด ๋ชจ๋ ์ฌ๋์๊ฒ ์ถฉ๋ถํ ํจ๊ณผ๊ฐ ์์ต๋๊น? .tslintignore
์ด(๊ฐ) ํด์ผ ํ ๋ค๋ฅธ ์์
์ด ์์ต๋๊น?
/cc @am11 , @basarat
์๋
ํ์ธ์ @JoshuaKGoldberg , ์ข์ ์์์
๋๋ค. ์ด ์ค๋ ๋์ ๋ง์ ์ฌ๋๋ค์ด ๊ธฐ๋ฅ ์ธ์๋ .tslintignore
ํ์ผ์์ ๊ธฐ๋ํ๋ ๊ฒ์ git, npm, eslint ๋ฑ์ ์ํด ์ด๋ฏธ ์ค์ ๋ ํ์ค์ ์ค์ํ๋ค๋ ๊ฒ์ด์์ต๋๋ค. ์ด ํ์ค์ ์ข์ํ๋ ์ฌ๋๋ค์ ๋งค์ฐ ํธ์ํ๊ฒ ๋๋๋๋ค. ์๋ฅผ ๋ค์ด .tslintignore
ํ์ผ์ด ์๋ํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ง๋ค ๋ ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์๋ํ์ง ์์ ๋ (์ณ๋ ๊ทธ๋ฅด๋ ) ๋๋์ต๋๋ค.
ํ . ์ด๊ฒ์ด ์ด๋ป๊ฒ ์๋ํด์ผ ํ๋์ง์ ๋ํ ๋ ๊ฐ์ง ํ์ค์ด ์๋์ง ์์ฌ์ค๋ฝ์ต๋๋ค. ๋๋ ํ ๋ฆฌ์ .tslintignore
๋ฐ linterOptions.exclude
๊ฐ ๋ชจ๋ ์๋ ๊ฒฝ์ฐ ๋์์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
ํธ์ง: ์ค, ๊ทธ๋ฆฌ๊ณ TypeScript๋ tsconfig.json
๋ก .*ignore
์ถ์ธ๋ ๊นจ๋จ๋ฆฝ๋๋ค.
eslint์ stylelint๋ ๋ชจ๋ --ignore-path
CLI ํ๋๊ทธ ๋๋ ignorePath
JS ์ต์
์ ์ง์ํฉ๋๋ค. tslint๋ ์ ์๋๋์?
์ด์ ๋ํ ์ง์์ ์ถ๊ฐํ์ญ์์ค! :๊ธฐ๋ํ๋ค:
#4534 ๋ฐ linterOptions.exclude
ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ฃผ์ด์ง๋ฉด ์ด๊ฒ์ ์ด์ TSLint์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ถ์ฅ๋๋ ์ ๊ทผ ๋ฐฉ์์ typescript-eslint ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒ์
๋๋ค. TSLint linting์์ ์ผ๋ถ TypeScript ํ์ผ์ ์ ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ linterOptions.exclude
๋ฅผ ์ฌ์ฉํ์ญ์์ค. ํ์ฐ์คํคํ์ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
linterOptions.exclude
์ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ ์ด๋ ต๊ฒ ๋ง๋๋ ์ฐจ๋จ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ฌ ๋ฒ๊ทธ๋ฅผ ๋ณด๊ณ ํ์ธ์!
๐ค ์์! ๐ TSLint๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๐ typescript-eslint ๋ก ์ ํ ํด์ผ ํฉ๋๋ค! ๐ค
๐ ์ด ์ด์๋ ๋ ์ด์์ ๋ถํ์ํ ํ ๋ก ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๊ทธ๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค! ๐
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ๋๋ก ๋ PR์ ์ ์ถํ์ง๋ง ๋ฐ๋ ๋์ ์๋ฌด๋ฐ ์กฐ์น๋ ์ทจํ์ง ์์ ์ํ์์ ๋ง ๊ทธ๋๋ก ์๋ฐฑ ๋ช ์ ์ฌ๋๋ค์ด ์ํ๋ 3๋ ์ด์ ๋ ๋ฌธ์ ์ ๋ถ๋ช์ณค์ต๋๋ค.