Припустимо, я маю передню частину, яка в основному є односторінковою програмою, написаною за допомогою кутового, бурчання та нахилу. І припустимо, у мене є бекенд, який є, як правило, лише REST API, що сидить поверх ORM, який зберігає / витягує об'єкти з бази даних, використовуючи такі речі, як грунт, експрес та секвелізація.
Кутове додаток виконує всі візуальні речі, які бачить користувач, але це робить це, використовуючи графічний інтерфейс користувача щодо послуг, що надаються бек-ендом.
Було б бажано розділити їх на дві різні кодові бази, дозволити незалежну розробку, версію, постійну інтеграцію, поштовх до розробки тощо.
Моє запитання, які методи існують для того, щоб це робити чисто? Чи рекомендовані найкращі практики для повного стека javascript?
Варіант №1 здається монолітом, тобто "не розділяйте їх". Професійна полягає в тому, що ланцюжок побудови простий, і все на одному місці - але, здається, є багато мінусів; важче самостійно виконати версію, зламаний фронт означає нерозгорнуту спинку тощо.
Варіант №2 представляється квазімонолітом, де ланцюг побудови переднього кінця призводить до написання купи файлів до бек-енду. dist
Каталог на передньому кінці буде посилатися на якийсь - небудь каталог на спині кінця, так , по суті , коли передній кінець minifies, uglifies і т.д., він закінчує публікацію до фонових, який проходить все.
Варіант №3 здається повнороздільним: передній та бек-енд кожен запускають власні сервери на різних портах, і вони є повністю окремими проектами. Недолік здається, що їх потрібно налаштувати, щоб знати про порти один одного; бек-енд повинен дозволити CORS з переднього, а передній повинен знати, де очікуються всі ці кінцеві точки.
Варіант №4 може використовувати щось на зразок докер-композиції, щоб скомпонувати всю справу разом.
Я впевнений, що є й інші варіанти. Що рекомендується найкраща практика?