我们正在开发基于MERN的多个品牌APP:Mongo,Express,React,NodeJS和webpack。这是我们在webpack上进行品牌宣传的代码:
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服务器。
最好的解决方案是将所有主文件放在根文件夹(domain.com)中,并将所有品牌内容放入子文件夹中。