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

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

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

10 ответов

34 просмотра

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

Да это я и имею в виду. Это самый простой кейс, просто вынес 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
да это понятно, я испугался, что реакт будет слишк...

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта