w-funnel/scripts/README.md
dev.daminik00 0ceb254f4e hh
2025-09-29 06:10:56 +02:00

78 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Scripts Documentation
## Funnel Management Scripts
### 📥 `import-funnels-to-db.mjs`
Импортирует воронки из JSON файлов в `public/funnels/` в MongoDB.
```bash
npm run import:funnels
```
### 📤 `sync-funnels-from-db.mjs`
Синхронизирует опубликованные воронки из MongoDB обратно в проект:
1. Извлекает все последние версии опубликованных воронок из БД
2. Сохраняет их в JSON файлы в `public/funnels/`
3. Запекает их в TypeScript (`src/lib/funnel/bakedFunnels.ts`)
4. Сохраняет JSON файлы по умолчанию
#### Основное использование:
```bash
# Синхронизация всех воронок
npm run sync:funnels
# Просмотр справки
npm run sync:funnels -- --help
```
#### Опции:
**`--dry-run`** - Показать что будет синхронизировано без реальных изменений:
```bash
npm run sync:funnels -- --dry-run
```
**`--clean-files`** - Удалить JSON файлы после запекания (по умолчанию сохраняются):
```bash
npm run sync:funnels -- --clean-files
```
**`--funnel-ids <ids>`** - Синхронизировать только определенные воронки:
```bash
npm run sync:funnels -- --funnel-ids funnel-test,ru-career-accelerator
```
**Комбинирование опций:**
```bash
npm run sync:funnels -- --dry-run --funnel-ids funnel-test
npm run sync:funnels -- --clean-files --dry-run
```
### 🔥 `bake-funnels.mjs`
Конвертирует JSON файлы воронок в TypeScript константы.
```bash
npm run bake:funnels
```
## Workflow
### Разработка локально:
1. Создать/редактировать воронки в админке
2. Опубликовать их
3. Запустить `npm run sync:funnels` для обновления кода
### Деплой:
1. Запустить `npm run sync:funnels` перед билдом
2. Собрать проект с актуальными воронками
### Отладка:
1. `npm run sync:funnels -- --dry-run` - посмотреть что будет синхронизировано
2. `npm run sync:funnels -- --keep-files` - оставить JSON файлы для проверки
3. `npm run sync:funnels -- --funnel-ids specific-id` - синхронизировать только одну воронку