Ptolemy_master
@Ptolemy_master

Как лучше организовать структуру такого проекта?

Есть проект на Node.js (вернее, будет). Вернее, их будет, скорее всего, не один. В этом и проблема. Все проекты представляют собой дашбоарды, или контрольные панели. У них есть общие элементы:
- меню слева
- основная часть справа
- заголовок
- может быть, футер.

Для каждого проекта содержимое меню разное. Есть общие части, например, настройки эккаунта и биллинг.
Основая часть тоже разная, кроме тех же настроек эккаунта и биллинга.
То есть каждый проект - это отдельный веб-продукт, для одного и того же клиента. Находясь в панели управления А, клиент мог бы посмотреть, какие продукты он вообще купил и историю заказов. То же самое в проекте Б.

Дашбоард, скорее всего, будет самописный, в основе Bootstrap, на фронтэнде AngularJS, серверная часть на Node.js + ejs.
Все проекты будут размещены на отдельных поддоменах. Можно сделать так, чтобы на каждом поддомене загружалось одно и то же приложение, но, в зависимости, от имени конкретного поддомена, подгружалась бы соответствующая часть дашбоарда.
Очень не хочется дублировать повторяющиеся части, поэтому единственное решение, которое видится - это сделать одно приложение, которое будет подгружать разные части.
Вопрос в том, как сделать эту подгрузку. До этого мне приходилось делать динамические страницы и динамические проекты же, но там разница была небольшой и легко решалась if-ами на ejs (тут тоже ejs).
Есть ли уже какое-то решение из коробки?
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
Общие части выделить в npm модули, по подключению есть три варианта:
1. решение в лоб, npm link, я бы не использовал, так как это больше для отладки модулей
2. npm вполне себе нормально работает с git репозиториями, как через ssh так и через http, лучше через ssh, так как если репо приватный, на http придется при каждой установке/обновлении вводить пароль, автоматизировать не получится, а на ssh можно пару ключей повесить
3. немного гиковское, зато самое гибкое - поднять свой npm репозиторий, в конфиге npm направить на него либо отдельный скоуп (@scope/module) или вообще все, если репо умеет проксировать (и кэшировать) неизвестные ему модули на официальный репо
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы