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 44 45 46 47 48 49
| 'use strict' const path = require('path') const CompressionWebpackPlugin = require('compression-webpack-plugin') const productionGzipExtensions = ['js', 'css']
function resolve(dir) { return path.join(__dirname, dir) } module.exports = { lintOnSave: false, publicPath: './', productionSourceMap: false, configureWebpack: config => { config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true if (process.env.NODE_ENV === 'production') { return { plugins: [ new CompressionWebpackPlugin({ filename: '[path].gz[query]', algorithm: 'gzip', test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), threshold: 10240, minRatio: 0.8, deleteOriginalAssets: true, }), ], } } }, chainWebpack: config => { config.plugins.delete('preload') config.plugins.delete('prefetch') }, pluginOptions: { pwa: { iconPaths: { favicon32: './favicon.ico', favicon16: './favicon.ico', appleTouchIcon: './favicon.ico', maskIcon: './favicon.ico', msTileImage: './favicon.ico', }, }, }, }
|