UNPKG

@area17/a17-boilerplate

Version:

The official AREA 17 boilerplate

59 lines (51 loc) 1.88 kB
const path = require('path'); const spawn = require('cross-spawn'); const chalk = require('chalk'); const utils = require('../utils'); const createLogger = require('logging').default; const relativePath = __dirname.replace(process.cwd(), '.'); const argv = require('minimist')(process.argv.slice(2)); const logger = createLogger('Bundle'); // use webpack to handle script task if (argv.watch) { logger.info('Starting Bundle in watch mode'); // Webpack in watch mode (and development mode) // webpack --config ../webpack.config.js --mode=development --watch --colors const ls = spawn( utils.resolveBin('webpack'), [].concat( ['--config'], [path.join(relativePath, '../webpack.config.js')], [argv.production ? '--mode=production' : '--mode=development'], [argv.verbose ? '--verbosemode=true' : '--verbosemode=false'], ['--watch'], ['--colors'] ) ); ls.stdout.on('data', (data) => { logger.info(`${data}`); }); } else { logger.info('Starting Scripts & Styles'); // Webpack in development (a17-bp bundle) or production mode (a17-bp bundle --production) // webpack --config ../webpack.config.js --mode=production --colors let result = spawn.sync( utils.resolveBin('webpack'), [].concat( ['--config'], [path.join(relativePath, '../webpack.config.js')], [argv.production ? '--mode=production' : '--mode=development'], [argv.verbose ? '--verbosemode=true' : '--verbosemode=false'], ['--colors'] ), {stdio: 'inherit'} ); if (result.status !== 0) { // process.stderr.write(result.stderr); process.stdout.write(chalk.red(result.stdout)); logger.error('Failed Scripts & Styles'); // process.exit(result.status); } else { logger.info(chalk.green('Succeed Scripts & Styles')); } }