w-funnel/scripts
2025-09-28 22:48:50 +02:00
..
bake-funnels.mjs Pre-render baked funnel routes 2025-09-26 02:46:48 +02:00
import-funnels-to-db.mjs admin 2025-09-27 05:48:42 +02:00
README.md add load json 2025-09-28 22:48:50 +02:00
run-with-variant.mjs Align build variants with prod/dev expectations 2025-09-28 17:30:32 +02:00
sync-funnels-from-db.mjs add load json 2025-09-28 22:48:50 +02:00

Scripts Documentation

Funnel Management Scripts

📥 import-funnels-to-db.mjs

Импортирует воронки из JSON файлов в public/funnels/ в MongoDB.

npm run import:funnels

📤 sync-funnels-from-db.mjs

Синхронизирует опубликованные воронки из MongoDB обратно в проект:

  1. Извлекает все последние версии опубликованных воронок из БД
  2. Сохраняет их во временные JSON файлы в public/funnels/
  3. Запекает их в TypeScript (src/lib/funnel/bakedFunnels.ts)
  4. Удаляет временные JSON файлы

Основное использование:

# Синхронизация всех воронок
npm run sync:funnels

# Просмотр справки
npm run sync:funnels -- --help

Опции:

--dry-run - Показать что будет синхронизировано без реальных изменений:

npm run sync:funnels -- --dry-run

--keep-files - Сохранить JSON файлы после запекания (полезно для отладки):

npm run sync:funnels -- --keep-files

--funnel-ids <ids> - Синхронизировать только определенные воронки:

npm run sync:funnels -- --funnel-ids funnel-test,ru-career-accelerator

Комбинирование опций:

npm run sync:funnels -- --dry-run --funnel-ids funnel-test
npm run sync:funnels -- --keep-files --dry-run

🔥 bake-funnels.mjs

Конвертирует JSON файлы воронок в TypeScript константы.

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 - синхронизировать только одну воронку