- Архитектура SLM: провайдеры перенесены в infrastructure/mantine, стили в shared/styles - SVG-спрайты: переход на @gromlab/svg-sprites, добавлен preload в layout - Стили: переменные и брейкпоинты приведены к базовому набору стайлгайда (rem, Mobile First) - PostCSS: добавлены postcss-custom-media, postcss-nesting, autoprefixer, @csstools/postcss-global-data - tsconfig: исправлен алиас shared/* → ./src/shared/* - Удалены app/styles/, app/providers/, scripts/create-svg-sprite.js, public/img/sprites/ - README переписан на SLM-архитектуру - Добавлены иконки: clipboard-tick, doctor, people, symptom
68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
# Next.js Template
|
||
|
||
Шаблон проекта на Next.js, построенный по [стайлгайду](https://gromlab.ru/docs/nextjs-style-guide).
|
||
|
||
## Стек
|
||
|
||
- **Next.js 16** — фреймворк
|
||
- **React 19** / **TypeScript 5** — UI и типизация
|
||
- **Mantine UI 8** — компоненты
|
||
- **Zustand 5** — глобальное состояние
|
||
- **SWR 2** — получение данных
|
||
- **PostCSS Modules** — стили
|
||
- **Biome** — линтер и форматтер
|
||
- **clsx** — конкатенация CSS-классов
|
||
|
||
## Архитектура
|
||
|
||
Проект использует SLM Design — модульную архитектуру с вертикальной организацией домена.
|
||
|
||
```
|
||
src/
|
||
├── app/ # Роутинг Next.js и точка входа приложения
|
||
├── layouts/ # Каркасы страниц (header, footer, sidebar)
|
||
├── screens/ # Контент конкретных страниц
|
||
├── widgets/ # Составные блоки интерфейса, не привязанные к домену
|
||
├── business/ # Бизнес-домены (auth, catalog, orders)
|
||
├── infrastructure/ # Техсервисы (theme, i18n, API-адаптеры)
|
||
├── ui/ # UI-кит без бизнес-логики
|
||
└── shared/ # Общие ресурсы (утилиты, типы, стили, спрайты)
|
||
```
|
||
|
||
Зависимости идут строго сверху вниз: `app` → `[layouts | screens]` → `widgets` → `business` → `infrastructure` → `ui` → `shared`.
|
||
|
||
Подробнее: [Архитектура SLM](./ai/nextjs-style-guide/basics/architecture/index.md).
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
npx tiged git@gromlab.ru:templates/nextjs.git my-app
|
||
cd my-app
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## Генерация кода
|
||
|
||
Модули создаются из шаблонов `.templates/`:
|
||
|
||
```bash
|
||
npx @gromlab/create module auth src/business
|
||
npx @gromlab/create widget header src/widgets
|
||
npx @gromlab/create layout admin src/layouts
|
||
npx @gromlab/create screen profile src/screens
|
||
npx @gromlab/create module button src/ui
|
||
npx @gromlab/create store auth src/shared
|
||
```
|
||
|
||
## Скрипты
|
||
|
||
| Команда | Описание |
|
||
|---|---|
|
||
| `npm run dev` | Запуск dev-сервера |
|
||
| `npm run build` | Сборка для продакшена |
|
||
| `npm run start` | Запуск продакшен-сервера |
|
||
| `npm run lint` | Проверка кода (Biome) |
|
||
| `npm run format` | Форматирование кода (Biome) |
|
||
| `npm run sprite` | Генерация SVG-спрайтов |
|