FAQ — Часто задаваемые вопросы
Ответы на типичные вопросы при работе с проектом.
Быстрый старт
Как запустить проект впервые?
bash
git clone <repository-url>
cd integ-admin
npm install
npm run generate:env -- local
npm startПодробнее
См. Быстрый старт для полной инструкции.
Как настроить переменные окружения?
Способ 1: Через Doppler (рекомендуется)
bash
doppler login
doppler setup
npm run generate:env -- localСпособ 2: Через .env.local файл
bash
# Создайте .env.local
API_URL=http://localhost:3000/api
WEBHOOK_BASE_URL=http://localhost:3001bash
npm run generate:env -- localПодробнее
Как загрузить типы с бэкенда?
bash
npm run generate:typesТипы сохраняются в src/app/core/interfaces/generated/.
Разработка
Как создать новый компонент?
bash
ng generate component admin/pages/my-feature/my-feature --standaloneКомпонент должен:
- Быть standalone (без NgModules)
- Использовать
inject()для DI - Иметь
ChangeDetectionStrategy.OnPush
Подробнее
Как добавить новую страницу?
- Создайте компонент в
src/app/admin/pages/ - Добавьте роут в
src/app/core/routes/ - Добавьте в навигацию (если нужно)
Почему мой код не проходит линтер?
Частые причины:
| Ошибка | Решение |
|---|---|
prefer-inject | Используйте inject() вместо конструктора |
explicit-function-return-type | Уберите return type — TypeScript выведет сам |
no-any | Создайте интерфейс вместо any |
simple-import-sort | Запустите npm run lint:fix |
bash
npm run lint:fixПочему pre-commit hook падает?
Hook автоматически:
- Удаляет комментарии
- Удаляет return types
- Форматирует код
- Запускает линтеры
Если падает — исправьте ошибки и повторите коммит:
bash
npm run lint:fix
npm run slint:fix
git add .
git commit -m "message"Стили
Как правильно писать SCSS?
scss
@use "../../path/to/assets/scss/abstractions/index" as *;
@include component() {
.my-component {
padding: var(--spacing-md);
background: var(--mat-sys-surface-container);
border-radius: var(--mat-sys-corner-medium);
}
}Подробнее
См. Стили (SCSS)
Какие CSS переменные доступны?
Отступы:
--spacing-xs(4px),--spacing-sm(8px),--spacing-md(16px),--spacing-lg(24px),--spacing-xl(32px)
Border-radius:
--mat-sys-corner-small(8px),--mat-sys-corner-medium(12px),--mat-sys-corner-large(16px)
Цвета:
--mat-sys-primary,--mat-sys-surface,--mat-sys-errorи др.
API и HTTP
Как работает ApiService?
ApiService автоматически извлекает data из обёрнутого ответа:
typescript
// API возвращает: { success: true, data: [...] }
// ApiService возвращает: [...]Подробнее
См. API Reference
Почему AuthService работает иначе?
Auth эндпоинты не используют обёртку { success, data }, поэтому AuthService работает напрямую с HttpClient.
Деплой
Как задеплоить приложение?
Dev окружение:
bash
git push origin dev
# Автоматический деплой через GitHub ActionsProduction:
bash
git push origin main
# Автоматический деплой через GitHub ActionsПодробнее
См. Деплой
Как задеплоить документацию?
Документация деплоится автоматически при изменениях в папке docs/:
bash
git add docs/
git commit -m "docs: update"
git push
# Деплой на Cloudflare PagesЕщё вопросы?
Если вы не нашли ответ:
- Проверьте раздел Частые ошибки
- Изучите документацию по теме
- Создайте issue в репозитории
Навигация
- Частые ошибки — типичные проблемы и решения
- Быстрый старт — начало работы
- Правила кода — стандарты разработки