UNPKG

ae-biu

Version:

Born For AE, Born To Do

78 lines (65 loc) 1.95 kB
#!/usr/bin/env node // @flow import program from 'commander' import webpack from 'webpack' import logger from './utils/logger' import clearLine from './utils/clear-line' import Loading from './utils/loading' import getWebpackConfig from './utils/get-webpack-config' import rimraf from 'rimraf' /** * Usage */ program .usage('[options]') .parse(process.argv) const args = program.args // must under development // for node process.env.NODE_ENV = 'production' // for sdp, it can be override by project process.env.SDP_ENV = (args[0] || process.env.SDP_ENV || process.env.npm_config_sdp_env || 'test').trim() // default set to test, no why // ensure create config after env let webpackConfig: Object = require('./config/webpack.config.prod') const projectConfig = getWebpackConfig() if (typeof projectConfig === 'function') { webpackConfig = projectConfig(webpackConfig) } else if (projectConfig) { webpackConfig = projectConfig } logger.info('Clean dist files\n') rimraf.sync(webpackConfig.output.path) const compiler = webpack(webpackConfig) const loading = new Loading() // logger.info('Compiling\n') console.log() loading.start() compiler.run((err, stats) => { loading.clear() clearLine() console.log() logger.info('Webpack compile completed.\n') if (err) { logger.error('Webpack compiler encountered a fatal error.\n', err) process.exit(1) } const jsonStats = stats.toJson() console.log(stats.toString({ modules: false, children: false, chunks: false, chunkModules: false, colors: true })) if (jsonStats.errors.length > 0) { logger.error('Webpack compiler encountered errors.\n') console.log(jsonStats.errors.join('\n')) process.exit(1) } else if (jsonStats.warnings.length > 0) { logger.warning('Webpack compiler encountered warnings.\n') process.exit(0) } else { logger.success('No errors or warnings encountered.\n') process.exit(0) } })