78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# 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` - синхронизировать только одну воронку
|