All files / gulpfile.ts/tasks webpackProduction.ts

0% Statements 0/17
0% Branches 0/5
0% Functions 0/3
0% Lines 0/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                                                                                     
import * as log from 'fancy-log'
import * as webpack from 'webpack'
import { ITimplaTask, logTitle, TIMPLA_PROCESS as TP, webpackMultiConfig } from '../internal'
 
export const webpackProduction: ITimplaTask = timplaConfig => callback => {
  webpack(webpackMultiConfig(timplaConfig)('production'), (err: any, stats) => {
    logTitle('Webpack Stats')
 
    if (err) {
      log.error(err.stack || err)
      if (err.details) {
        log.error(err.details)
      }
    }
 
    if (stats) {
      if (stats.hasErrors()) {
        const errs = stats.toString({
          all: false,
          colors: true,
          errors: true,
        })
        log.error(errs)
      }
      if (stats.hasWarnings()) {
        const info = stats.toJson()
        log.warn(info.warnings)
      }
    }
 
    if (err || (stats && stats.hasErrors())) {
      process.exit(1)
    }
 
    if (stats) {
      const statsMsg = stats.toString({ colors: true, context: TP.INIT_CWD })
      console.log(statsMsg)
    }
 
    callback()
  })
}