2022-01-04 19:38:27 +00:00
|
|
|
/*
|
|
|
|
* We got so many locals that building them all in one go can lead to out-of-memory error
|
|
|
|
* Lets split that here
|
|
|
|
*/
|
|
|
|
|
2022-08-16 00:43:48 +00:00
|
|
|
const webpack = require('webpack');
|
|
|
|
const serverConfig = require('../webpack.config.server.js');
|
|
|
|
const clientConfig = require('../webpack.config.client.js');
|
|
|
|
const { getAllAvailableLocals } = clientConfig;
|
2022-01-04 19:38:27 +00:00
|
|
|
|
|
|
|
function compile(webpackConfig) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
webpack(webpackConfig).run((err, stats) => {
|
|
|
|
if (err) {
|
|
|
|
return reject(err);
|
|
|
|
}
|
|
|
|
const statsConfig = (webpackConfig.length) ? webpackConfig[0].stats : webpackConfig.stats;
|
|
|
|
console.log(stats.toString(statsConfig))
|
|
|
|
return resolve();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async function buildProduction() {
|
|
|
|
// server files
|
|
|
|
console.log('-----------------------------');
|
|
|
|
console.log(`Build server...`);
|
|
|
|
console.log('-----------------------------');
|
|
|
|
await compile(serverConfig({
|
|
|
|
development: false,
|
|
|
|
extract: false,
|
|
|
|
}));
|
|
|
|
// client files
|
|
|
|
const langs = getAllAvailableLocals();
|
|
|
|
console.log('Available locales:', langs);
|
|
|
|
const st = Date.now();
|
|
|
|
for(let i = 0; i < langs.length; i += 1) {
|
|
|
|
const lang = langs[i];
|
|
|
|
console.log(`Build client for locale ${lang}...`);
|
|
|
|
console.log('-----------------------------');
|
|
|
|
await compile(clientConfig({
|
|
|
|
development: false,
|
|
|
|
analyze: false,
|
|
|
|
extract: false,
|
|
|
|
locale: lang,
|
|
|
|
}));
|
|
|
|
}
|
|
|
|
console.log(`Finished building in ${(Date.now() - st) / 1000}s`);
|
|
|
|
}
|
|
|
|
|
|
|
|
buildProduction();
|