const rm = require('rimraf'); const path = require('path'); const webpack = require('webpack'); const chalk = require('chalk'); const ora = require('ora') const pkg = require('../../package.json'); const webpackConfig = require('./webpack.prod.babel') const argv = require('../../server/argv'); const spinner = ora('building for production...'); const { printFileSizes } = require('./buildDevUtil'); // const Diff = require('diff'); /* eslint-disable */ spinner.start() rm( process.env.npm_config_releasepath ? path.resolve( process.env.npm_config_releasepath, pkg.name.toLocaleLowerCase(), ) : `./${pkg.name.toLocaleLowerCase()}`, err => { if (err) throw err // eslint-disable-next-line no-shadow webpack(webpackConfig, function (err, stats) { spinner.stop() if (err) { console.log(err) throw err } process.stdout.write(`${stats.toString({ colors: true, color: true, progress: true, modules: false, children: false, chunks: true, chunkModules: true }) }\n\n`) printFileSizes(stats, path.relative(process.cwd(), webpackConfig.output.path)); if (stats.hasErrors()) { console.log(chalk.red(' Build failed with errors.\n')) process.exit(1) } console.log(chalk.cyan(' Build complete.\n')) console.log( chalk.yellow( ' Tip: built files are meant to be served over an HTTP server.\n' + ' Opening index.html over file:// won\'t work.\n' )) }) })