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

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

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

10 ответов

40 просмотров

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта