create-nadvan-app 1.0.1 → 1.0.2
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/README.md +90 -2
- package/package.json +1 -1
- package/src/templates/base/commitlint.config.js +20 -1
package/README.md
CHANGED
|
@@ -121,6 +121,63 @@ src/
|
|
|
121
121
|
|
|
122
122
|
---
|
|
123
123
|
|
|
124
|
+
## Работа с FSD структурой (fsd-generator)
|
|
125
|
+
|
|
126
|
+
После создания проекта используй **`fsd-generator`** для быстрого scaffolding слоёв и слайсов.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Установка (один раз)
|
|
130
|
+
npm install -g fsd-generator
|
|
131
|
+
|
|
132
|
+
# Инициализировать FSD (если не запускали)
|
|
133
|
+
fsd init
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Создание компонентов
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Простой виджет
|
|
140
|
+
fsd -t widget -n header
|
|
141
|
+
|
|
142
|
+
# Несколько виджетов сразу
|
|
143
|
+
fsd -t widget -n header,footer,sidebar
|
|
144
|
+
|
|
145
|
+
# Фича со структурой ui + model
|
|
146
|
+
fsd slice -t feature -n user-auth
|
|
147
|
+
|
|
148
|
+
# Сущность с ui + model + api + lib
|
|
149
|
+
fsd slice -t entity -n product --full
|
|
150
|
+
|
|
151
|
+
# Несколько компонентов в одной папке
|
|
152
|
+
fsd -t widget -n form -c Button,Input,Select
|
|
153
|
+
|
|
154
|
+
# Плоская структура (без папки ui)
|
|
155
|
+
fsd -t shared -n icons --flat -c CloseIcon,ArrowIcon
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Что создаётся
|
|
159
|
+
|
|
160
|
+
| Команда | Структура |
|
|
161
|
+
|---|---|
|
|
162
|
+
| `fsd -t widget -n header` | `widgets/header/ui/Header.tsx` + `index.ts` |
|
|
163
|
+
| `fsd slice -t feature -n auth` | `features/auth/ui/` + `model/types.ts` + `index.ts` |
|
|
164
|
+
| `fsd slice -t entity -n user --full` | `entities/user/ui/` + `model/` + `api/` + `lib/` |
|
|
165
|
+
|
|
166
|
+
### Управление структурой
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
fsd list # Показать весь проект
|
|
170
|
+
fsd list widget # Показать компоненты слоя widget
|
|
171
|
+
fsd check # Проверить соответствие FSD
|
|
172
|
+
fsd info # Информация о проекте
|
|
173
|
+
fsd remove -t widget -n header # Удалить компонент
|
|
174
|
+
fsd rename -t widget -n header header-v2 # Переименовать
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
> Файлы не перезаписываются, экспорты добавляются в `index.ts` автоматически.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
124
181
|
## Автоматические проверки
|
|
125
182
|
|
|
126
183
|
При каждом `git commit` автоматически запускаются:
|
|
@@ -137,14 +194,45 @@ src/
|
|
|
137
194
|
<тип>(<область>): <описание>
|
|
138
195
|
```
|
|
139
196
|
|
|
140
|
-
|
|
197
|
+
**Типы:**
|
|
198
|
+
|
|
199
|
+
| Тип | Когда использовать |
|
|
200
|
+
|---|---|
|
|
201
|
+
| `feat` | Новая функциональность |
|
|
202
|
+
| `fix` | Исправление бага |
|
|
203
|
+
| `style` | Только стили/вёрстка, без логики |
|
|
204
|
+
| `refactor` | Рефакторинг без изменения поведения |
|
|
205
|
+
| `perf` | Оптимизация производительности |
|
|
206
|
+
| `test` | Тесты |
|
|
207
|
+
| `docs` | Документация, README, Storybook |
|
|
208
|
+
| `chore` | Зависимости, конфиги, инфраструктура |
|
|
209
|
+
| `ci` | CI/CD пайплайны |
|
|
210
|
+
| `revert` | Откат коммита |
|
|
211
|
+
| `wip` | Work in progress (только в feature-ветках) |
|
|
212
|
+
|
|
213
|
+
**Область (scope)** — FSD-слой или техническая зона: `app`, `pages`, `widgets`, `features`, `entities`, `shared`, `ui`, `api`, `styles`, `deps`, `config`, `ci`.
|
|
214
|
+
|
|
215
|
+
Можно уточнять до конкретного модуля: `features/auth`, `widgets/header`.
|
|
216
|
+
|
|
217
|
+
**Правила описания:**
|
|
218
|
+
- Инфинитив: «добавить», «исправить», «обновить» — не «добавил»
|
|
219
|
+
- Без точки в конце
|
|
220
|
+
- Конкретно: «исправить отступ в Button» лучше «исправить баг»
|
|
221
|
+
|
|
222
|
+
**Примеры:**
|
|
141
223
|
```
|
|
142
224
|
feat(features): добавить авторизацию через OAuth
|
|
143
225
|
fix(shared): исправить отступы в компоненте Button
|
|
144
226
|
style(widgets): обновить вёрстку Header под мобайл
|
|
145
|
-
|
|
227
|
+
refactor(entities): вынести логику фильтрации в хук
|
|
228
|
+
perf(widgets): добавить React.memo для ProductCard
|
|
229
|
+
chore(deps): обновить nadvan-ui-kit до 1.0.3
|
|
230
|
+
docs: добавить раздел про fsd-generator в README
|
|
231
|
+
wip(features): начать реализацию корзины
|
|
146
232
|
```
|
|
147
233
|
|
|
234
|
+
Подробная документация — в [frontend-standard.md, раздел 5.4](../frontend-standard.md).
|
|
235
|
+
|
|
148
236
|
---
|
|
149
237
|
|
|
150
238
|
## Скрипты
|
package/package.json
CHANGED
|
@@ -52,11 +52,30 @@ export default {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
/*
|
|
55
|
+
Формат: <тип>(<область>): <описание>
|
|
56
|
+
|
|
57
|
+
Правила описания:
|
|
58
|
+
- Инфинитив: «добавить», «исправить» — не «добавил», «исправил»
|
|
59
|
+
- Без точки в конце
|
|
60
|
+
- Конкретно и понятно
|
|
61
|
+
|
|
55
62
|
Примеры правильных коммитов:
|
|
56
63
|
feat(features): добавить авторизацию через OAuth
|
|
64
|
+
feat(widgets): добавить выпадающее меню в Header
|
|
57
65
|
fix(shared): исправить padding в компоненте Button
|
|
66
|
+
fix(features): устранить зависание формы при быстром вводе
|
|
58
67
|
style(widgets): обновить вёрстку Header под мобайл
|
|
59
68
|
refactor(entities): переименовать поля в модели User
|
|
60
|
-
|
|
69
|
+
refactor(features): вынести валидацию формы в отдельный хук
|
|
70
|
+
perf(widgets): добавить React.memo для ProductCard
|
|
71
|
+
test(features): покрыть тестами хук useAuth
|
|
61
72
|
docs: добавить описание компонентов в Storybook
|
|
73
|
+
chore(deps): обновить nadvan-ui-kit до 1.0.3
|
|
74
|
+
chore(config): добавить алиас @icons в tsconfig
|
|
75
|
+
ci: добавить GitHub Actions workflow для деплоя
|
|
76
|
+
wip(features): начать реализацию корзины ← только в feature-ветках!
|
|
77
|
+
|
|
78
|
+
Область (scope) — FSD-слой или техническая зона.
|
|
79
|
+
Можно уточнять: features/auth, widgets/header.
|
|
80
|
+
Подробнее: https://github.com/your-org/nadvan-specifications
|
|
62
81
|
*/
|