@kood/claude-code 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +13 -8
- package/package.json +1 -1
- package/templates/.claude/agents/code-reviewer.md +371 -19
- package/templates/.claude/agents/dependency-manager.md +197 -0
- package/templates/.claude/agents/deployment-validator.md +136 -0
- package/templates/.claude/agents/git-operator.md +147 -0
- package/templates/.claude/agents/implementation-executor.md +202 -0
- package/templates/.claude/agents/lint-fixer.md +155 -0
- package/templates/.claude/agents/refactor-advisor.md +339 -29
- package/templates/.claude/commands/agent-creator.md +355 -0
- package/templates/.claude/commands/docs-creator.md +404 -163
- package/templates/.claude/commands/docs-refactor.md +400 -113
- package/templates/.claude/commands/execute.md +357 -185
- package/templates/.claude/commands/git-all.md +16 -70
- package/templates/.claude/commands/git-session.md +36 -68
- package/templates/.claude/commands/git.md +20 -69
- package/templates/.claude/commands/lint-fix.md +164 -107
- package/templates/.claude/commands/lint-init.md +142 -168
- package/templates/.claude/commands/plan.md +300 -84
- package/templates/.claude/commands/prd.md +613 -0
- package/templates/.claude/commands/pre-deploy.md +242 -0
- package/templates/.claude/commands/subagent-creator.md +118 -0
- package/templates/.claude/commands/version-update.md +45 -57
- package/templates/hono/CLAUDE.md +99 -54
- package/templates/hono/docs/guides/conventions.md +352 -0
- package/templates/hono/docs/guides/env-setup.md +347 -0
- package/templates/hono/docs/guides/getting-started.md +239 -0
- package/templates/hono/docs/library/hono/error-handling.md +20 -29
- package/templates/hono/docs/library/hono/index.md +25 -52
- package/templates/hono/docs/library/hono/middleware.md +16 -75
- package/templates/hono/docs/library/hono/rpc.md +7 -35
- package/templates/hono/docs/library/hono/validation.md +25 -45
- package/templates/hono/docs/library/t3-env/index.md +374 -0
- package/templates/npx/CLAUDE.md +165 -65
- package/templates/npx/docs/library/commander/index.md +10 -73
- package/templates/npx/docs/library/fs-extra/index.md +21 -113
- package/templates/npx/docs/library/prompts/index.md +30 -176
- package/templates/npx/docs/references/patterns.md +75 -48
- package/templates/tanstack-start/CLAUDE.md +101 -77
- package/templates/tanstack-start/docs/architecture.md +427 -0
- package/templates/tanstack-start/docs/design.md +558 -0
- package/templates/tanstack-start/docs/guides/conventions.md +132 -32
- package/templates/tanstack-start/docs/guides/env-setup.md +127 -62
- package/templates/tanstack-start/docs/guides/getting-started.md +81 -20
- package/templates/tanstack-start/docs/guides/hooks.md +241 -36
- package/templates/tanstack-start/docs/guides/routes.md +213 -61
- package/templates/tanstack-start/docs/guides/services.md +260 -24
- package/templates/tanstack-start/docs/library/better-auth/index.md +469 -16
- package/templates/tanstack-start/docs/library/t3-env/index.md +307 -0
- package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -21
- package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +22 -35
- package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +7 -24
- package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +26 -39
- package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +23 -26
- package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +32 -147
- package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +25 -167
- package/templates/tanstack-start/docs/library/tanstack-router/index.md +39 -74
- package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +46 -116
- package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +35 -154
- package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +32 -171
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +7 -15
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +16 -23
- package/templates/tanstack-start/docs/library/zod/complex-types.md +12 -31
- package/templates/tanstack-start/docs/library/zod/index.md +18 -35
- package/templates/tanstack-start/docs/library/zod/transforms.md +11 -25
- package/templates/tanstack-start/docs/library/zod/validation.md +12 -34
- package/templates/.claude/agents/debug-detective.md +0 -37
- package/templates/.claude/agents/test-writer.md +0 -41
- package/templates/.claude/commands/feedback.md +0 -199
- package/templates/.claude/commands/ts-fix.md +0 -176
- package/templates/.claude/skills/command-creator/LICENSE.txt +0 -202
- package/templates/.claude/skills/command-creator/SKILL.md +0 -245
- package/templates/.claude/skills/command-creator/scripts/init_command.py +0 -244
- package/templates/.claude/skills/command-creator/scripts/package_command.py +0 -125
- package/templates/.claude/skills/command-creator/scripts/quick_validate.py +0 -143
- package/templates/.claude/skills/frontend-design/SKILL.md +0 -310
- package/templates/.claude/skills/frontend-design/references/animation-patterns.md +0 -446
- package/templates/.claude/skills/frontend-design/references/colors-2026.md +0 -244
- package/templates/.claude/skills/frontend-design/references/typography-2026.md +0 -302
- package/templates/.claude/skills/gemini-review/SKILL.md +0 -118
- package/templates/.claude/skills/gemini-review/references/checklists.md +0 -129
- package/templates/.claude/skills/gemini-review/references/prompt-templates.md +0 -274
- package/templates/.claude/skills/skill-creator/LICENSE.txt +0 -202
- package/templates/.claude/skills/skill-creator/SKILL.md +0 -184
- package/templates/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
- package/templates/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
- package/templates/.claude/skills/skill-creator/scripts/quick_validate.py +0 -65
- package/templates/hono/docs/library/ai-sdk/index.md +0 -190
- package/templates/hono/docs/library/ai-sdk/openrouter.md +0 -111
- package/templates/hono/docs/library/ai-sdk/providers.md +0 -102
- package/templates/hono/docs/library/ai-sdk/streaming.md +0 -146
- package/templates/hono/docs/library/ai-sdk/structured-output.md +0 -161
- package/templates/hono/docs/library/ai-sdk/tools.md +0 -144
- package/templates/hono/docs/library/drizzle/cloudflare-d1.md +0 -247
- package/templates/hono/docs/library/drizzle/config.md +0 -167
- package/templates/hono/docs/library/drizzle/index.md +0 -259
- package/templates/hono/docs/library/hono/env-setup.md +0 -169
- package/templates/hono/docs/library/pino/index.md +0 -146
- package/templates/tanstack-start/docs/architecture/architecture.md +0 -243
- package/templates/tanstack-start/docs/deployment/cloudflare.md +0 -132
- package/templates/tanstack-start/docs/deployment/index.md +0 -163
- package/templates/tanstack-start/docs/deployment/nitro.md +0 -110
- package/templates/tanstack-start/docs/deployment/railway.md +0 -147
- package/templates/tanstack-start/docs/deployment/vercel.md +0 -135
- package/templates/tanstack-start/docs/design/components.md +0 -175
- package/templates/tanstack-start/docs/design/index.md +0 -151
- package/templates/tanstack-start/docs/design/safe-area.md +0 -118
- package/templates/tanstack-start/docs/design/tailwind-setup.md +0 -156
- package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +0 -472
- package/templates/tanstack-start/docs/library/ai-sdk/index.md +0 -264
- package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +0 -371
- package/templates/tanstack-start/docs/library/ai-sdk/providers.md +0 -403
- package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +0 -320
- package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +0 -454
- package/templates/tanstack-start/docs/library/ai-sdk/tools.md +0 -473
- package/templates/tanstack-start/docs/library/better-auth/2fa.md +0 -48
- package/templates/tanstack-start/docs/library/better-auth/advanced.md +0 -55
- package/templates/tanstack-start/docs/library/better-auth/plugins.md +0 -34
- package/templates/tanstack-start/docs/library/better-auth/session.md +0 -47
- package/templates/tanstack-start/docs/library/better-auth/setup.md +0 -41
- package/templates/tanstack-start/docs/library/drizzle/cloudflare-d1.md +0 -147
- package/templates/tanstack-start/docs/library/drizzle/config.md +0 -118
- package/templates/tanstack-start/docs/library/drizzle/crud.md +0 -205
- package/templates/tanstack-start/docs/library/drizzle/index.md +0 -79
- package/templates/tanstack-start/docs/library/drizzle/relations.md +0 -202
- package/templates/tanstack-start/docs/library/drizzle/schema.md +0 -154
- package/templates/tanstack-start/docs/library/drizzle/setup.md +0 -96
- package/templates/tanstack-start/docs/library/drizzle/transactions.md +0 -127
- package/templates/tanstack-start/docs/library/pino/index.md +0 -320
- /package/templates/hono/docs/{architecture/architecture.md → architecture.md} +0 -0
|
@@ -1,92 +1,106 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 프로젝트 분석 후 ESLint flat config
|
|
3
|
-
allowed-tools: Read, Write, Edit, Glob, Bash
|
|
2
|
+
description: 프로젝트 분석 후 ESLint flat config 설정
|
|
3
|
+
allowed-tools: Read, Write, Edit, Glob, Bash, mcp__sequential-thinking__sequentialthinking
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
@../instructions/sequential-thinking-guide.md
|
|
7
|
+
|
|
6
8
|
# Lint Init Command
|
|
7
9
|
|
|
8
|
-
프로젝트
|
|
10
|
+
프로젝트 분석 → ESLint flat config 자동 생성.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
<requirements>
|
|
11
13
|
|
|
12
|
-
|
|
|
13
|
-
|
|
14
|
-
| **
|
|
15
|
-
| **
|
|
16
|
-
|
|
|
14
|
+
| 분류 | 필수 |
|
|
15
|
+
|------|------|
|
|
16
|
+
| **Thinking** | Sequential 5-7단계 (@sequential-thinking-guide.md) |
|
|
17
|
+
| **Config** | ESLint v9+ flat config (`eslint.config.js`) |
|
|
18
|
+
| **Detection** | 언어/프레임워크/런타임 자동 감지 |
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
</requirements>
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
1. Sequential Thinking으로 프로젝트 분석 시작 (최소 5단계)
|
|
22
|
-
2. 핵심 파일 수집:
|
|
23
|
-
- package.json (의존성, 스크립트)
|
|
24
|
-
- tsconfig.json (TypeScript 설정)
|
|
25
|
-
- 기존 ESLint 설정 (.eslintrc.*, eslint.config.*)
|
|
26
|
-
3. 프로젝트 특성 파악:
|
|
27
|
-
- 언어: TypeScript / JavaScript
|
|
28
|
-
- 런타임: Node.js / Browser / 둘 다
|
|
29
|
-
- 프레임워크: React, Vue, Next.js, Express 등
|
|
30
|
-
4. 적절한 ESLint 설정 생성
|
|
31
|
-
5. 필요 패키지 목록 제공
|
|
32
|
-
6. 설치 명령어 안내
|
|
33
|
-
```
|
|
22
|
+
---
|
|
34
23
|
|
|
35
|
-
|
|
24
|
+
<workflow>
|
|
36
25
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
<step number="1">
|
|
27
|
+
<action>Sequential Thinking 시작</action>
|
|
28
|
+
<detail>프로젝트 구조, 의존성, 기존 설정 분석 (5-7단계)</detail>
|
|
29
|
+
</step>
|
|
30
|
+
|
|
31
|
+
<step number="2">
|
|
32
|
+
<action>핵심 파일 수집</action>
|
|
33
|
+
<tools>Read (package.json, tsconfig.json, 기존 ESLint 설정)</tools>
|
|
34
|
+
</step>
|
|
35
|
+
|
|
36
|
+
<step number="3">
|
|
37
|
+
<action>프로젝트 특성 감지</action>
|
|
38
|
+
<detail>언어(TS/JS), 런타임(Node/Browser), 프레임워크(React/Vue/등)</detail>
|
|
39
|
+
</step>
|
|
40
|
+
|
|
41
|
+
<step number="4">
|
|
42
|
+
<action>ESLint 설정 생성</action>
|
|
43
|
+
<deliverable>eslint.config.js</deliverable>
|
|
44
|
+
</step>
|
|
45
|
+
|
|
46
|
+
<step number="5">
|
|
47
|
+
<action>패키지 설치 안내</action>
|
|
48
|
+
<detail>필요 패키지 목록 + npm/yarn/pnpm 명령어</detail>
|
|
49
|
+
</step>
|
|
50
|
+
|
|
51
|
+
</workflow>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
<detection>
|
|
44
56
|
|
|
45
57
|
## 프로젝트 특성 감지
|
|
46
58
|
|
|
47
|
-
### 언어
|
|
59
|
+
### 언어
|
|
48
60
|
|
|
49
|
-
|
|
|
50
|
-
|
|
61
|
+
| 조건 | 판단 |
|
|
62
|
+
|------|------|
|
|
51
63
|
| `tsconfig.json` 존재 | TypeScript |
|
|
52
64
|
| `devDependencies.typescript` | TypeScript |
|
|
53
|
-
|
|
|
65
|
+
| `src/**/*.{ts,tsx}` 파일 | TypeScript |
|
|
54
66
|
| 그 외 | JavaScript |
|
|
55
67
|
|
|
56
|
-
### 프레임워크
|
|
68
|
+
### 프레임워크
|
|
57
69
|
|
|
58
|
-
| 의존성 | 프레임워크 |
|
|
59
|
-
|
|
60
|
-
| `react`, `react-
|
|
61
|
-
| `next` | Next.js |
|
|
62
|
-
| `vue` | Vue |
|
|
63
|
-
|
|
|
64
|
-
| `express` | Express |
|
|
65
|
-
| `hono` | Hono |
|
|
66
|
-
| `fastify` | Fastify |
|
|
70
|
+
| 의존성 | 프레임워크 | 추가 플러그인 |
|
|
71
|
+
|--------|-----------|-------------|
|
|
72
|
+
| `react` | React | `eslint-plugin-react`, `eslint-plugin-react-hooks` |
|
|
73
|
+
| `next` | Next.js | React + Next.js 규칙 |
|
|
74
|
+
| `vue` | Vue | `eslint-plugin-vue`, `vue-eslint-parser` |
|
|
75
|
+
| `express`, `hono`, `fastify` | Node.js 서버 | - |
|
|
67
76
|
|
|
68
|
-
### 런타임
|
|
77
|
+
### 런타임
|
|
69
78
|
|
|
70
|
-
| 조건 |
|
|
71
|
-
|
|
72
|
-
| `express`, `fastify`, `hono` |
|
|
73
|
-
| `react`, `vue`, `angular` |
|
|
74
|
-
| `next`, `nuxt` |
|
|
75
|
-
| `package.json` type: "module" | ESM |
|
|
79
|
+
| 조건 | globals |
|
|
80
|
+
|------|---------|
|
|
81
|
+
| `express`, `fastify`, `hono` | `globals.node` |
|
|
82
|
+
| `react`, `vue`, `angular` | `globals.browser` |
|
|
83
|
+
| `next`, `nuxt` | `globals.node` + `globals.browser` |
|
|
76
84
|
|
|
77
|
-
|
|
85
|
+
</detection>
|
|
86
|
+
|
|
87
|
+
---
|
|
78
88
|
|
|
79
|
-
|
|
89
|
+
<templates>
|
|
90
|
+
|
|
91
|
+
## ESLint Flat Config 패턴
|
|
92
|
+
|
|
93
|
+
### 기본 구조 (TypeScript + Node.js)
|
|
80
94
|
|
|
81
95
|
```javascript
|
|
82
|
-
import eslint from '@eslint/js'
|
|
83
|
-
import tseslint from '@typescript-eslint/eslint-plugin'
|
|
84
|
-
import tsparser from '@typescript-eslint/parser'
|
|
85
|
-
import globals from 'globals'
|
|
96
|
+
import eslint from '@eslint/js'
|
|
97
|
+
import tseslint from '@typescript-eslint/eslint-plugin'
|
|
98
|
+
import tsparser from '@typescript-eslint/parser'
|
|
99
|
+
import globals from 'globals'
|
|
86
100
|
|
|
87
101
|
export default [
|
|
88
102
|
{
|
|
89
|
-
ignores: ['dist/**', 'node_modules/**'],
|
|
103
|
+
ignores: ['dist/**', 'node_modules/**', 'build/**'],
|
|
90
104
|
},
|
|
91
105
|
eslint.configs.recommended,
|
|
92
106
|
{
|
|
@@ -107,90 +121,49 @@ export default [
|
|
|
107
121
|
},
|
|
108
122
|
rules: {
|
|
109
123
|
...tseslint.configs.recommended.rules,
|
|
110
|
-
'@typescript-eslint/
|
|
111
|
-
'@typescript-eslint/no-unused-vars': [
|
|
112
|
-
'error',
|
|
113
|
-
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
|
|
114
|
-
],
|
|
124
|
+
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
115
125
|
'@typescript-eslint/no-explicit-any': 'error',
|
|
116
|
-
'@typescript-eslint/consistent-type-imports': [
|
|
117
|
-
'error',
|
|
118
|
-
{ prefer: 'type-imports' },
|
|
119
|
-
],
|
|
120
|
-
'no-unused-vars': 'off',
|
|
121
|
-
'no-undef': 'off',
|
|
122
|
-
'prefer-const': 'error',
|
|
123
|
-
'no-var': 'error',
|
|
124
|
-
eqeqeq: ['error', 'always'],
|
|
126
|
+
'@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports' }],
|
|
125
127
|
},
|
|
126
128
|
},
|
|
127
|
-
]
|
|
129
|
+
]
|
|
128
130
|
```
|
|
129
131
|
|
|
130
|
-
###
|
|
132
|
+
### React 추가 시
|
|
131
133
|
|
|
132
134
|
```javascript
|
|
133
|
-
|
|
134
|
-
import
|
|
135
|
-
import
|
|
136
|
-
import reactPlugin from 'eslint-plugin-react';
|
|
137
|
-
import reactHooksPlugin from 'eslint-plugin-react-hooks';
|
|
138
|
-
import globals from 'globals';
|
|
135
|
+
// 위 기본 구조에 추가:
|
|
136
|
+
import reactPlugin from 'eslint-plugin-react'
|
|
137
|
+
import reactHooksPlugin from 'eslint-plugin-react-hooks'
|
|
139
138
|
|
|
140
139
|
export default [
|
|
141
|
-
|
|
142
|
-
ignores: ['dist/**', 'node_modules/**', 'build/**'],
|
|
143
|
-
},
|
|
144
|
-
eslint.configs.recommended,
|
|
140
|
+
// ...
|
|
145
141
|
{
|
|
146
142
|
files: ['src/**/*.{ts,tsx}'],
|
|
147
|
-
languageOptions: {
|
|
148
|
-
parser: tsparser,
|
|
149
|
-
parserOptions: {
|
|
150
|
-
ecmaVersion: 'latest',
|
|
151
|
-
sourceType: 'module',
|
|
152
|
-
project: './tsconfig.json',
|
|
153
|
-
ecmaFeatures: {
|
|
154
|
-
jsx: true,
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
globals: {
|
|
158
|
-
...globals.browser,
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
143
|
plugins: {
|
|
162
144
|
'@typescript-eslint': tseslint,
|
|
163
145
|
'react': reactPlugin,
|
|
164
146
|
'react-hooks': reactHooksPlugin,
|
|
165
147
|
},
|
|
166
148
|
settings: {
|
|
167
|
-
react: {
|
|
168
|
-
version: 'detect',
|
|
169
|
-
},
|
|
149
|
+
react: { version: 'detect' },
|
|
170
150
|
},
|
|
171
151
|
rules: {
|
|
172
|
-
...
|
|
152
|
+
// ... 위 rules +
|
|
173
153
|
...reactPlugin.configs.recommended.rules,
|
|
174
154
|
...reactHooksPlugin.configs.recommended.rules,
|
|
175
|
-
'@typescript-eslint/no-unused-vars': [
|
|
176
|
-
'error',
|
|
177
|
-
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
|
|
178
|
-
],
|
|
179
|
-
'@typescript-eslint/no-explicit-any': 'error',
|
|
180
155
|
'react/react-in-jsx-scope': 'off',
|
|
181
156
|
'react/prop-types': 'off',
|
|
182
|
-
'no-unused-vars': 'off',
|
|
183
|
-
'no-undef': 'off',
|
|
184
157
|
},
|
|
185
158
|
},
|
|
186
|
-
]
|
|
159
|
+
]
|
|
187
160
|
```
|
|
188
161
|
|
|
189
|
-
### JavaScript
|
|
162
|
+
### JavaScript Only
|
|
190
163
|
|
|
191
164
|
```javascript
|
|
192
|
-
import eslint from '@eslint/js'
|
|
193
|
-
import globals from 'globals'
|
|
165
|
+
import eslint from '@eslint/js'
|
|
166
|
+
import globals from 'globals'
|
|
194
167
|
|
|
195
168
|
export default [
|
|
196
169
|
{
|
|
@@ -202,67 +175,71 @@ export default [
|
|
|
202
175
|
languageOptions: {
|
|
203
176
|
ecmaVersion: 'latest',
|
|
204
177
|
sourceType: 'module',
|
|
205
|
-
globals: {
|
|
206
|
-
...globals.node,
|
|
207
|
-
},
|
|
178
|
+
globals: { ...globals.node },
|
|
208
179
|
},
|
|
209
180
|
rules: {
|
|
210
|
-
'no-unused-vars': [
|
|
211
|
-
'error',
|
|
212
|
-
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
|
|
213
|
-
],
|
|
181
|
+
'no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
214
182
|
'prefer-const': 'error',
|
|
215
183
|
'no-var': 'error',
|
|
216
|
-
eqeqeq: ['error', 'always'],
|
|
217
184
|
},
|
|
218
185
|
},
|
|
219
|
-
]
|
|
186
|
+
]
|
|
220
187
|
```
|
|
221
188
|
|
|
189
|
+
</templates>
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
<packages>
|
|
194
|
+
|
|
222
195
|
## 필요 패키지
|
|
223
196
|
|
|
224
|
-
|
|
197
|
+
| 조건 | 패키지 |
|
|
198
|
+
|------|--------|
|
|
199
|
+
| **기본** | `eslint @eslint/js globals` |
|
|
200
|
+
| **TypeScript** | 위 + `@typescript-eslint/parser @typescript-eslint/eslint-plugin` |
|
|
201
|
+
| **React** | 위 + `eslint-plugin-react eslint-plugin-react-hooks` |
|
|
202
|
+
| **Vue** | 위 + `eslint-plugin-vue vue-eslint-parser` |
|
|
203
|
+
|
|
204
|
+
### 설치 명령어
|
|
225
205
|
|
|
226
206
|
```bash
|
|
207
|
+
# 기본 (JavaScript)
|
|
227
208
|
npm install -D eslint @eslint/js globals
|
|
228
|
-
```
|
|
229
209
|
|
|
230
|
-
|
|
210
|
+
# TypeScript
|
|
211
|
+
npm install -D eslint @eslint/js globals @typescript-eslint/parser @typescript-eslint/eslint-plugin
|
|
231
212
|
|
|
232
|
-
|
|
233
|
-
npm install -D @typescript-eslint/parser @typescript-eslint/eslint-plugin
|
|
213
|
+
# TypeScript + React
|
|
214
|
+
npm install -D eslint @eslint/js globals @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-plugin-react eslint-plugin-react-hooks
|
|
234
215
|
```
|
|
235
216
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
npm install -D eslint-plugin-react eslint-plugin-react-hooks
|
|
240
|
-
```
|
|
217
|
+
</packages>
|
|
241
218
|
|
|
242
|
-
|
|
219
|
+
---
|
|
243
220
|
|
|
244
|
-
|
|
245
|
-
npm install -D eslint-plugin-vue vue-eslint-parser
|
|
246
|
-
```
|
|
221
|
+
<migration>
|
|
247
222
|
|
|
248
223
|
## 기존 설정 처리
|
|
249
224
|
|
|
250
|
-
|
|
225
|
+
| 파일 | 처리 |
|
|
226
|
+
|------|------|
|
|
227
|
+
| `.eslintrc.{json,js,yml}` | flat config 변환 → 백업 후 제거 |
|
|
228
|
+
| `package.json` `eslintConfig` | flat config 변환 → `package.json`에서 제거 |
|
|
251
229
|
|
|
252
|
-
|
|
253
|
-
1.
|
|
254
|
-
2.
|
|
255
|
-
3.
|
|
230
|
+
**변환 방법:**
|
|
231
|
+
1. 기존 `rules`, `extends`, `plugins` 추출
|
|
232
|
+
2. flat config 형식으로 변환
|
|
233
|
+
3. 원본 백업 (`.eslintrc.backup`)
|
|
234
|
+
4. `eslint.config.js` 생성
|
|
256
235
|
|
|
257
|
-
|
|
236
|
+
</migration>
|
|
258
237
|
|
|
259
|
-
|
|
260
|
-
1. 해당 설정을 flat config로 변환
|
|
261
|
-
2. `package.json`에서 `eslintConfig` 제거
|
|
238
|
+
---
|
|
262
239
|
|
|
263
|
-
|
|
240
|
+
<scripts>
|
|
264
241
|
|
|
265
|
-
|
|
242
|
+
## package.json 스크립트
|
|
266
243
|
|
|
267
244
|
```json
|
|
268
245
|
{
|
|
@@ -273,28 +250,25 @@ npm install -D eslint-plugin-vue vue-eslint-parser
|
|
|
273
250
|
}
|
|
274
251
|
```
|
|
275
252
|
|
|
276
|
-
|
|
253
|
+
설정 완료 후 자동 추가 제안.
|
|
254
|
+
|
|
255
|
+
</scripts>
|
|
277
256
|
|
|
278
|
-
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
<validation>
|
|
279
260
|
|
|
280
|
-
|
|
281
|
-
- [ ] tsconfig.json 확인
|
|
282
|
-
- [ ] 기존 ESLint 설정 확인
|
|
283
|
-
- [ ] 디렉토리 구조 파악
|
|
284
|
-
- [ ] 소스 파일 패턴 확인
|
|
261
|
+
## 검증 단계
|
|
285
262
|
|
|
286
|
-
|
|
263
|
+
```bash
|
|
264
|
+
# 1. 설정 문법 확인
|
|
265
|
+
npx eslint --print-config src/index.ts
|
|
287
266
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
- [ ] 파일 패턴 (files) 설정
|
|
291
|
-
- [ ] globals 설정
|
|
292
|
-
- [ ] 규칙 커스터마이징
|
|
267
|
+
# 2. Lint 실행
|
|
268
|
+
npm run lint
|
|
293
269
|
|
|
294
|
-
|
|
270
|
+
# 3. 자동 수정 테스트
|
|
271
|
+
npm run lint:fix
|
|
272
|
+
```
|
|
295
273
|
|
|
296
|
-
|
|
297
|
-
- [ ] 필요 패키지 목록 제공
|
|
298
|
-
- [ ] 설치 명령어 안내
|
|
299
|
-
- [ ] package.json 스크립트 추가 제안
|
|
300
|
-
- [ ] 테스트 실행 안내
|
|
274
|
+
</validation>
|