'use strict'; const path = require('path'); const webpack = require('webpack'); const webpackConfig = require('../webpack.config'); const buildAdmin = async () => { const entry = path.join(__dirname, '..', 'admin', 'src'); const dest = path.join(__dirname, '..', 'build'); const args = { entry, dest, env: 'production', optimize: true, options: { backend: 'http://localhost:1337', adminPath: '/admin/', }, }; const compiler = webpack(webpackConfig(args)); console.log('Building the admin panel'); return new Promise((resolve, reject) => { compiler.run((err, stats) => { let messages; if (err) { if (!err.message) { return reject(err); } messages = { errors: [err.message], warnings: [], }; } else { messages = stats.toJson({ all: false, warnings: true, errors: true }); } if (messages.errors.length) { // Only keep the first error. Others are often indicative // of the same problem, but confuse the reader with noise. if (messages.errors.length > 1) { messages.errors.length = 1; } return reject(new Error(messages.errors.join('\n\n'))); } return resolve({ stats, warnings: messages.warnings, }); }); }); }; buildAdmin() .then(() => { process.exit(); }) .catch(err => { console.error(err); process.exit(1); });