Skip to content

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:3001
bash
npm run generate:env -- local

Подробнее

См. Секреты и Doppler


Как загрузить типы с бэкенда?

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

Как добавить новую страницу?

  1. Создайте компонент в src/app/admin/pages/
  2. Добавьте роут в src/app/core/routes/
  3. Добавьте в навигацию (если нужно)

Почему мой код не проходит линтер?

Частые причины:

ОшибкаРешение
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 автоматически:

  1. Удаляет комментарии
  2. Удаляет return types
  3. Форматирует код
  4. Запускает линтеры

Если падает — исправьте ошибки и повторите коммит:

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 Actions

Production:

bash
git push origin main
# Автоматический деплой через GitHub Actions

Подробнее

См. Деплой


Как задеплоить документацию?

Документация деплоится автоматически при изменениях в папке docs/:

bash
git add docs/
git commit -m "docs: update"
git push
# Деплой на Cloudflare Pages

Ещё вопросы?

Если вы не нашли ответ:

  1. Проверьте раздел Частые ошибки
  2. Изучите документацию по теме
  3. Создайте issue в репозитории

Навигация

SaaS Admin Documentation