const fs = require('fs-extra'); const debug = require('debug')('app:bin:compile'); const webpackCompiler = require('../build/webpack-compiler'); const webpackConfig = require('../build/webpack.config'); const config = require('../config'); const paths = config.utils_paths; const compile = () => { debug('Starting compiler.'); return Promise.resolve() .then(() => webpackCompiler(webpackConfig)) .then(stats => { if (stats.warnings.length && config.compiler_fail_on_warning) { throw new Error('Config set to fail on warning, exiting with status code "1".'); } debug('Copying static assets to dist folder.'); if (fs.existsSync(paths.client('static'))) fs.copySync(paths.client('static'), paths.dist()); if (fs.existsSync(paths.client('assets'))) fs.copySync(paths.client('assets'), paths.dist('assets')); if (fs.existsSync(paths.project('static'))) fs.copySync(paths.project('static'), paths.dist()); if (fs.existsSync(paths.project('assets'))) fs.copySync(paths.project('assets'), paths.dist('assets')); if (fs.existsSync(paths.lib())) fs.copySync(paths.lib(), paths.dist()); }) .then(() => { debug('Compilation completed successfully.'); }) .catch(err => { debug('Compiler encountered an error.', err); process.exit(1); }); }; compile();