1212
1313## ์ฌ์ฉ ๋ํ๋์
1414
15+ - [ eslint-plugin-better-tailwindcss] ( https://www.npmjs.com/package/eslint-plugin-better-tailwindcss )
16+ - TailwindCSS ๊ด๋ จ ESLint ํ๋ฌ๊ทธ์ธ
1517- [ eslint-plugin-import] ( https://www.npmjs.com/package/eslint-plugin-import )
1618 - Import ๊ตฌ๋ฌธ ๊ด๋ จ ESLint ํ๋ฌ๊ทธ์ธ
1719- [ eslint-plugin-jest] ( https://www.npmjs.com/package/eslint-plugin-jest )
2628 - ์ ๋ ฌ ๊ด๋ จ ESLint ํ๋ฌ๊ทธ์ธ
2729- [ @stylistic/eslint-plugin ] ( https://www.npmjs.com/package/@stylistic/eslint-plugin )
2830 - stylistic ESLint ํ๋ฌ๊ทธ์ธ
29- - [ eslint-plugin-tailwindcss] ( https://www.npmjs.com/package/eslint-plugin-tailwindcss )
30- - TailwindCSS ๊ด๋ จ ESLint ํ๋ฌ๊ทธ์ธ
3131- [ @tanstack/eslint-plugin-query ] ( https://www.npmjs.com/package/@tanstack/eslint-plugin-query )
3232 - react-query ๊ด๋ จ ESLint ํ๋ฌ๊ทธ์ธ
3333- [ typescript-eslint] ( https://www.npmjs.com/package/typescript-eslint )
@@ -57,7 +57,7 @@ yarn add -D @itcode-dev/eslint-config
5757
5858``` bash
5959# yarn berry
60- yarn add -D @itcode-dev/eslint-config eslint-plugin-import eslint-plugin-jest @next/eslint-plugin-next eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-sort-keys-fix eslint-plugin-tailwindcss @tanstack/eslint-plugin-query typescript-eslint eslint-plugin-unused-imports
60+ yarn add -D @itcode-dev/eslint-config eslint-plugin-better-tailwindcss eslint-plugin- import eslint-plugin-jest @next/eslint-plugin-next eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-sort-keys-fix @tanstack/eslint-plugin-query typescript-eslint eslint-plugin-unused-imports
6161```
6262
6363- pnpm
@@ -69,20 +69,20 @@ pnpm add -D @itcode-dev/eslint-config
6969
7070## ์ค์ ๋ฐฉ๋ฒ
7171
72- | name | description |
73- | :-------------------- | :------------------------------------------------------------------------------------------------ |
74- | ` baseConfig ` | ESLint ์ค์ |
75- | ` importConfig ` | [ eslint-plugin-import ] ( https://www.npmjs.com/package/eslint-plugin-import ) ์ค์ |
76- | ` jestConfig ` | [ eslint-plugin-jest ] ( https://www.npmjs.com/package/eslint-plugin-jest ) ์ค์ |
77- | ` nextConfig ` | [ @ next/ eslint-plugin-next ] ( https://www.npmjs.com/package/@next/ eslint-plugin-next ) ์ค์ |
78- | ` reactConfig ` | [ eslint-plugin-react ] ( https://www.npmjs.com/package/eslint-plugin-react ) ์ค์ |
79- | ` reactHooksConfig ` | [ eslint-plugin-react-hooks ] ( https://www.npmjs.com/package/eslint-plugin-react-hooks ) ์ค์ |
80- | ` sortKeysFixConfig ` | [ eslint-plugin-sort-keys-fix ] ( https://www.npmjs.com/package/eslint-plugin-sort-keys-fix ) ์ค์ |
81- | ` stylisticConfig ` | [ @ stylistic/ eslint-plugin] ( https://www.npmjs.com/package/@stylistic/ eslint-plugin ) ์ค์ |
82- | ` tailwindcssConfig ` | [ eslint-plugin-tailwindcss ] ( https://www.npmjs.com/package/eslint-plugin-tailwindcss ) ์ค์ |
83- | ` tanstackConfig ` | [ @tanstack/eslint-plugin-query ] ( https://www.npmjs.com/package/@tanstack/eslint-plugin-query ) ์ค์ |
84- | ` tseslintConfig ` | [ typescript-eslint] ( https://www.npmjs.com/package/typescript-eslint ) ์ค์ |
85- | ` unusedImportsConfig ` | [ eslint-plugin-unused-imports] ( https://www.npmjs.com/package/eslint-plugin-unused-imports ) ์ค์ |
72+ | name | description |
73+ | :------------------------ | :------ ------------------------------------------------------------------------------------------------ |
74+ | ` baseConfig ` | ESLint ์ค์ |
75+ | ` betterTailwindcssConfig ` | [ eslint-plugin-better-tailwindcss ] ( https://www.npmjs.com/package/eslint-plugin-better-tailwindcss ) ์ค์ |
76+ | ` importConfig ` | [ eslint-plugin-import ] ( https://www.npmjs.com/package/eslint-plugin-import ) ์ค์ |
77+ | ` jestConfig ` | [ eslint-plugin-jest ] ( https://www.npmjs.com/package/eslint-plugin-jest ) ์ค์ |
78+ | ` nextConfig ` | [ @ next/ eslint-plugin-next ] ( https://www.npmjs.com/package/@next/ eslint-plugin-next ) ์ค์ |
79+ | ` reactConfig ` | [ eslint-plugin-react] ( https://www.npmjs.com/package/eslint-plugin-react ) ์ค์ |
80+ | ` reactHooksConfig ` | [ eslint-plugin-react-hooks ] ( https://www.npmjs.com/package/eslint-plugin-react-hooks ) ์ค์ |
81+ | ` sortKeysFixConfig ` | [ eslint-plugin-sort-keys-fix ] ( https://www.npmjs.com/package/eslint-plugin-sort-keys-fix ) ์ค์ |
82+ | ` stylisticConfig ` | [ @ stylistic/ eslint-plugin] ( https://www.npmjs.com/package/@stylistic/ eslint-plugin ) ์ค์ |
83+ | ` tanstackConfig ` | [ @tanstack/eslint-plugin-query ] ( https://www.npmjs.com/package/@tanstack/eslint-plugin-query ) ์ค์ |
84+ | ` tseslintConfig ` | [ typescript-eslint] ( https://www.npmjs.com/package/typescript-eslint ) ์ค์ |
85+ | ` unusedImportsConfig ` | [ eslint-plugin-unused-imports] ( https://www.npmjs.com/package/eslint-plugin-unused-imports ) ์ค์ |
8686
8787``` js
8888import itcodeConfig from ' @itcode-dev/eslint-config'
@@ -221,6 +221,34 @@ export default {
221221} satisfies Linter .Config ;
222222```
223223
224+ ### eslint-plugin-better-tailwindcss ์ค์
225+
226+ ``` ts
227+ import pluginBetterTailwindcss from ' eslint-plugin-better-tailwindcss' ;
228+
229+ import type { Linter } from ' eslint' ;
230+
231+ export default {
232+ files: [ ' **/*.[jt]sx' ],
233+ plugins: { ' @better-tailwindcss' : pluginBetterTailwindcss },
234+ rules: {
235+ // ํด๋์ค ์ ๋ ฌ ๊ฐ์
236+ ' @better-tailwindcss/enforce-consistent-class-order' : ' error' ,
237+ // ์ผ๊ด๋ ํด๋์ค ์ค๋ฐ๊ฟ ๊ฐ์
238+ ' @better-tailwindcss/enforce-consistent-line-wrapping' : ' error' ,
239+ // ์ผ๊ด๋ CSS ๋ณ์ ํธ์ถ ๊ฐ์
240+ ' @better-tailwindcss/enforce-consistent-variable-syntax' : ' error' ,
241+ // ํด๋์ค ์คํ์ผ ์ถฉ๋ ๋ฐฉ์ง
242+ ' @better-tailwindcss/no-conflicting-classes' : ' error' ,
243+ // ํด๋์ค ์ค๋ณต ๋ฐฉ์ง
244+ ' @better-tailwindcss/no-duplicate-classes' : ' error' ,
245+ // ๋ถํ์ ๊ณต๋ฐฑ ์ ๊ฑฐ
246+ ' @better-tailwindcss/no-unnecessary-whitespace' : ' error'
247+ }
248+ } satisfies Linter .Config ;
249+ ```
250+
251+
224252### eslint-plugin-import ์ค์
225253
226254``` ts
@@ -928,32 +956,6 @@ export default {
928956} satisfies Linter .Config ;
929957```
930958
931- ### eslint-plugin-tailwindcss ์ค์
932-
933- ``` ts
934- import pluginTailwindcss from ' eslint-plugin-tailwindcss' ;
935-
936- import type { Linter } from ' eslint' ;
937-
938- export default {
939- plugins: { ' @tailwindcss' : pluginTailwindcss },
940- rules: {
941- // className ์ ๋ ฌ ๊ฐ์
942- ' @tailwindcss/classnames-order' : ' error' ,
943- // ์ค์ฒฉ - ์ฐ์ฐ ๋ฐฉ์ง
944- ' @tailwindcss/enforces-negative-arbitrary-values' : ' error' ,
945- // ์ถ์ฝํ ๊ฐ์
946- ' @tailwindcss/enforces-shorthand' : ' error' ,
947- // TailwindCSS 2 ๋ง์ด๊ทธ๋ ์ด์
๊ฐ์
948- ' @tailwindcss/migration-from-tailwind-2' : ' error' ,
949- // ๊ฐ์ ์์ฑ์ ๊ฑด๋๋ฆฌ๋ className ๋ฐฉ์ง
950- ' @tailwindcss/no-contradicting-classname' : ' error' ,
951- // ๋ถํ์ํ ์ ์ธ ๋ฐฉ์ ๋ฐฉ์ง
952- ' @tailwindcss/no-unnecessary-arbitrary-value' : ' error'
953- }
954- } satisfies Linter .Config ;
955- ```
956-
957959### @tanstack/eslint-plugin-query ์ค์
958960
959961``` ts
0 commit comments