Sha256: e0aef696f9d574c8a7e825a1277e4191c8859a03dcb568a8eb2f9a7b613fbd0c
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 KB
Contents
/* eslint global-require: 0 */ /* eslint import/no-dynamic-require: 0 */ const { merge } = require('webpack-merge') const CompressionPlugin = require('compression-webpack-plugin') const TerserPlugin = require('terser-webpack-plugin') const baseConfig = require('./base') const { moduleExists } = require('../utils/helpers') const getPlugins = () => { let compressionPlugin = new CompressionPlugin({ filename: '[path].gz[query]', algorithm: 'gzip', test: /\.(js|css|html|json|ico|svg|eot|otf|ttf|map)$/ }) if ('brotli' in process.versions) { compressionPlugin = new CompressionPlugin({ filename: '[path].br[query]', algorithm: 'brotliCompress', test: /\.(js|css|html|json|ico|svg|eot|otf|ttf|map)$/ }) } return [compressionPlugin] } const productionConfig = { devtool: 'source-map', stats: 'normal', bail: true, plugins: getPlugins(), optimization: { minimizer: [ () => { if ( moduleExists('css-loader') && moduleExists('css-minimizer-webpack-plugin') ) { const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') return new CssMinimizerPlugin({ sourceMap: true }) } return false }, new TerserPlugin({ parallel: Number.parseInt(process.env.WEBPACKER_PARALLEL, 10) || true, terserOptions: { parse: { // Let terser 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 } } }) ].filter(Boolean) } } module.exports = merge(baseConfig, productionConfig)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
webpacker-6.0.0.beta.1 | package/environments/production.js |
webpacker-6.0.0.beta | package/environments/production.js |