172 похожих чатов

Или именно так и есть, меняешь переменные, а бандл на

фронте один, просто подтягивает нужные переменные из конфигжс?

10 ответов

26 просмотров

именно так и есть

Да это я и имею в виду. Это самый простой кейс, просто вынес REACT_APP_BACKEND_URL в config.js А вот если кейсы сложнее, когда у тебя в js какой нибудь if(some) {<some code>} - если some = false вебпак просто убирает весь if c блоком <some code> Вот для таких кейсов, либо собирается два бандла для some: true и для some: false, С разными версиями index.html, которые эти бандлы тянут, а на уровне nginx в контейнере, ты уже возвращаешь правильную версию index.html в зависимости от этого самого some, которое тебе известно на этапе ренедеринга манифестов куба и ты можешь это делать. Второй вариант: some вообще не определяешь на этапе сборки, и заставляешь сборщик оставить конструкцию if(some) { <some code> }. И просто использовать переменную из config.js/config.json, а переменную прокидывать на этапе деплоя. Второй вариант программисты обычно не любят, потому боятся что пользователи могут в браузере в консоле определять этот some и менять поведение фронта. Но на мой взгляд это не супер критичный риск, в целом боятся что пользователь намеренно исполнит какой-то не предусмотренный код на фронте ИМХО странно, юзер все равно это может сделать просто его написав в консоле. Если этот код ходит на какие-то секретные ендпоинты бэкенда, ну так не открывайте их в продакшене и всё. А у себя в браузере пусть юзер творит что вздумается.

Timofey-Larkin Автор вопроса
Dmitry Sergeev 🇺🇦
Да это я и имею в виду. Это самый простой кейс, пр...

Падажжжи. А если > if(some) {<some code>} - если some = false вебпак просто убирает весь if c блоком <some code> То разве он не за-inline-ит тебе и твои REACT_APP_BACKEND_URL из твоего config.js?

Dmitry Sergeev 🇺🇦
Да это я и имею в виду. Это самый простой кейс, пр...

у меня обычно такая дичь { "feedbackForm": { "isShow": true, "uri": "/some/path/", "url": "https://some url/" }, "showMedBanner": {{ med_banner | lower }}, "showDigitalHomeworkBanner": {{ digital_homework_banner | lower }}, "showVovBanner": {{ vov_banner | lower }}, "eomUrl": "{{ eomurl }}", "showGrippBanner": {{ grip_banner | lower }}, "showConfBanner": {{ conf_banner | lower }} }

Андрей Балашов
у меня обычно такая дичь { "feedbackForm": { ...

вот этот конфиг на любое количество окружений залетает

Timofey Larkin
Падажжжи. А если > if(some) {<some code>} - если ...

это все настраивается на уровне сборки обычно

Timofey-Larkin Автор вопроса
Dmitry Vorobev
config.js не бандлится же

да это понятно, я испугался, что реакт будет слишком дохрена умным — если переменная не определена — boom — сочтём её за null value

Timofey Larkin
да это понятно, я испугался, что реакт будет слишк...

реакт вообще сборкой не занимается, там тот же webpack же внутрях

Timofey Larkin
да это понятно, я испугался, что реакт будет слишк...

насколько я помню это настраиваемое поведение

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

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта