mirror of
https://github.com/LukeHagar/firecamp.git
synced 2025-12-06 12:27:44 +00:00
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
/* eslint-disable no-console */
|
|
require('dotenv').config();
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
require('shelljs/global');
|
|
const { Environment, AppFormat } = require('./constants');
|
|
const build = require('../webpack.prod');
|
|
|
|
const env = process.env.NODE_ENV;
|
|
|
|
module.exports = async () => {
|
|
try {
|
|
// hold the build path as per the environment mode
|
|
const buildPath = path.join(`${__dirname}/../build/${env}`);
|
|
// copy project assets and generate config.
|
|
const directoryPaths = [path.join(`${__dirname}/../build`), buildPath];
|
|
if (env === Environment.Development) {
|
|
directoryPaths.push(
|
|
path.join(`${__dirname}/../build/${env}/build-scripts`)
|
|
);
|
|
}
|
|
if (env === Environment.Production) {
|
|
directoryPaths.push(
|
|
path.join(`${__dirname}/../build/${env}/build-scripts`),
|
|
path.join(`${__dirname}/../build/${env}/services`),
|
|
path.join(`${__dirname}/../build/${env}/packages-executors`)
|
|
);
|
|
}
|
|
|
|
// Remove build before start bundle
|
|
rm('-rf', buildPath);
|
|
|
|
// Create build directories
|
|
directoryPaths.forEach((directoryPath) => {
|
|
if (!fs.existsSync(directoryPath)) mkdir(directoryPath);
|
|
});
|
|
|
|
// Copy react app assets
|
|
cp(
|
|
'-R',
|
|
path.join(`${__dirname}/../platform/firecamp-platform/public/assets/*`),
|
|
buildPath
|
|
);
|
|
|
|
// generate package.json and manifest based on app environment
|
|
// exec(`node ${buildPath}/build-scripts/init-package.js`);
|
|
|
|
if (env === Environment.Production || env === Environment.Staging) {
|
|
await build();
|
|
}
|
|
return Promise.resolve();
|
|
} catch (error) {
|
|
return Promise.reject(error);
|
|
}
|
|
};
|
|
|
|
if (env === Environment.Development) module.exports();
|