Sha256: b638b7d9e9d505e63a3ff0bf80cdb7824afd2c6679141615d5ca1c606487bbeb

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const CompressionPlugin = require('compression-webpack-plugin')
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
const Base = require('./base')

module.exports = class extends Base {
  constructor() {
    super()

    this.plugins.append(
      'Compression',
      new CompressionPlugin({
        asset: '[path].gz[query]',
        algorithm: 'gzip',
        test: /\.(js|css|html|json|ico|svg|eot|otf|ttf)$/
      })
    )

    this.plugins.append('OptimizeCSSAssets', new OptimizeCSSAssetsPlugin())

    this.config.merge({
      devtool: 'nosources-source-map',
      stats: 'normal',
      bail: true,
      optimization: {
        minimizer: [
          new UglifyJsPlugin({
            parallel: true,
            cache: true,
            sourceMap: true,
            uglifyOptions: {
              parse: {
                // Let uglify-js parse ecma 8 code but always output
                // ES5 compliant code for older browsers
                ecma: 8
              },
              compress: {
                ecma: 5,
                warnings: false,
                comparisons: false
              },
              mangle: {
                safari10: true
              },
              output: {
                ecma: 5,
                comments: false,
                ascii_only: true
              }
            }
          })
        ]
      }
    })
  }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
webpacker-4.0.0.pre.3 package/environments/production.js