GreaterGlider
@GreaterGlider

Как обновлять данных в React приложении без пересборки?

Добрый день всем!

Есть приложение которое использует данные в json которые подгружаются локально через include (не дёргаются ни с какого сервера или API). Эти данные редко, но всё же приходится модифицировать и сейчас этот процесс выглядит как модификация json, npm build и заливка всего билда на сервер. Что не очень удобно.

Вопрос - как поступают в таких ситуациях, есть ли какой-нибудь best practice? Пока на ум приходит класть json куда-то рядом с билдом и дёргать его через fetch и модифицировать только его одного, но в таком случае тоже возникает необходимость лазить на сервер. Заранее спасибо!
  • Вопрос задан
  • 271 просмотр
Решения вопроса 2
rockon404
@rockon404 Куратор тега React
Frontend Developer
1. Написать скрипт для деплоя приложения. json оставить в сборке. Деплоить изменения одной командой в консоли.
2. Обновлять данные скриптом через ssh соединение. json вынести.
3. Написать простенькую админку и обновлять данные через нее. json вынести.
Ответ написан
@karminski
Senior React.JS Developer
Если json обновляется редко, пересобрать билд - самый простой и оптимальный вариант.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@EmachinesDIMA
junior DevOps
пересобирать проект не лучшая идея. Сам завис над реализацией этой задачи.
в голове пока несколько вариантов:
1. сохранять данные в сторонней хранилке (на сервере где развёрнуто приложение или в артефактах gitlab чтобы была возможность скачивать данные). Но с этим долго воюю и никак не могу обуздать. Вот мой вопрос на эту тему: https://qna.habr.com/q/1068706

2. Использовать реализацию с gateway_nginx - промежуточное состояние, где каждый сервис запущен с nginx независимо: react+nginx , gateway+nginx, CMS+nginx . Здесь пригодится балансировщик типа traefik или HA, или через proxy_pass nginx это обыграть....

3. еще прорабатываю и копаюсь в инете на тему "как работает живая лента новостей" или нечно подобное....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы