Мы разрабатываем приложение с несколькими брендами на основе MERN: Mongo, Express, React, NodeJS и веб-пакета.Это наш код для брендинга в веб-пакете:
const BRANDING = process.env.BRANDING || default;
rules.push(
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract({
use: [
'css-loader',
{
loader: 'sass-loader',
options: {
sourceMap: IS_DEVELOPMENT,
}
},
{
loader: 'sass-resources-loader',
options: {
resources: [
'./common/style/flaticon/_flaticon_fonts.scss',
'./common/style/flaticon/_flaticon_class.scss',
`./common/branding/${BRANDING}/${BRANDING}_variables.scss`,
'./common/style/bootstrap/_general_variables.scss',
'./node_modules/bootstrap/scss/bootstrap-reboot.scss', // functions, variables, mixins, reboot
`./common/branding/${BRANDING}/${BRANDING}.scss`,
]
},
},
]
})
},
);
Итак, как вы можете видеть, мы строим нашу тематику на основе значения .env.Он работает нормально, но теперь мы хотим пойти дальше и найти возможность легко развернуть приложение из нескольких доменов с одной базой данных, но разными поддоменами.Например: - google.domain.com - БРЕНДИНГ будет google - microsoft.domain.com - БРЕНДИНГ будет Microsoft. Мы хотим сохранить один репозиторий, одну базу данных и, если возможно, только один сервер nodejs server.
Лучшим решением будет разместить все наши основные файлы в корневой папке (domain.com), а весь фирменный контент - в подпапке.