t1-proxy-configs
v0.1.3
Published
Configure a local development proxy for T1 Vite, CRA/CRACO and legacy frontend repositories
Maintainers
Readme
t1-proxy-configs
CLI для настройки локального dev proxy в frontend-репозиториях:
- Vite (
vite.config.*); - Create React App с CRACO (
craco.config.*); - Rspack с CommonJS-конфигурацией (
rspack.config.js/cjs), блокомdevServerи флагомisProduction, как в nginx-front; - легаси webpack-dev-server (
scripts/dev-server.js).
Скрипт сам определяет тип репозитория, не имеет runtime-зависимостей и одинаково запускается через Node.js или Bun.
Запуск
Из корня целевого репозитория:
npx t1-proxy-configsили:
bunx t1-proxy-configsПо умолчанию в Vite/CRA остаётся явный placeholder https://YOUR_STAND_URL. Разработчик должен заменить его на URL нужного стенда. URL можно передать сразу:
npx t1-proxy-configs --target https://example.test.t1-group.ruДля проверки без изменения файлов:
npx t1-proxy-configs --dry-runМожно передать путь к репозиторию и при необходимости явно указать тип:
npx t1-proxy-configs ../fe-control-map --type viteПовторный запуск безопасен: уже добавленные настройки не дублируются.
Что изменяется
Vite и CRA получают корневой dev-proxy.cjs с общими HTTP/gRPC-web маршрутами. Vite подключает его в server.proxy, CRA — через devServer CRACO. Если CRA содержит стандартный setupProxy.js, который только добавляет CORS-заголовок, он заменяется на no-op; дополнительная пользовательская логика сохраняется.
Легаси-репозиторий настраивает proxy в scripts/dev-server.js, переводит gRPC/AJAX-запросы локальной разработки на origin dev-сервера и берёт целевой URL из static/settings/settings.json, поле RNIS_API_URL.
Rspack получает scripts/dev-proxy.js и подключение в devServer.proxy только для разработки. Маршруты /ajax, /api., /pb., /eventsapi., /contex., /OrderRunsApi. используют changeOrigin, WebSocket и xfwd. URL берётся из static/settings/settings.json, поле RNIS_API_URL; --target для Rspack и легаси не используется. В стандартном scripts/dev-server.js nginx-front добавляется вывод адреса прокси. Клиентские URL остаются без изменений. Существующий пользовательский proxy требует ручного согласования.
