@digicms/cms
Version:
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
58 lines (47 loc) • 1.57 kB
JavaScript
;
const { green } = require('chalk');
const strapiAdmin = require('@strapi/admin');
const { getConfigUrls } = require('@strapi/utils');
const ee = require('../../utils/ee');
const addSlash = require('../../utils/addSlash');
const strapi = require('../../index');
const getEnabledPlugins = require('../../core/loaders/plugins/get-enabled-plugins');
module.exports = async ({ buildDestDir, forceBuild = true, optimization, srcDir }) => {
const strapiInstance = strapi({
// Directories
appDir: srcDir,
distDir: buildDestDir,
// Options
autoReload: true,
serveAdminPanel: false,
});
const plugins = await getEnabledPlugins(strapiInstance);
const env = strapiInstance.config.get('environment');
const { serverUrl, adminPath } = getConfigUrls(strapiInstance.config, true);
console.log(`Building your admin UI with ${green(env)} configuration...`);
// Always remove the .cache and build folders
await strapiAdmin.clean({ appDir: srcDir, buildDestDir });
ee.init(srcDir);
return strapiAdmin
.build({
appDir: srcDir,
buildDestDir,
// front end build env is always production for now
env: 'production',
forceBuild,
plugins,
optimize: optimization,
options: {
backend: serverUrl,
adminPath: addSlash(adminPath),
telemetryIsDisabled: strapiInstance.telemetry.isDisabled,
},
})
.then(() => {
console.log('Admin UI built successfully');
})
.catch((err) => {
console.error(err);
process.exit(1);
});
};