webpack.prod.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const merge = require('webpack-merge')
  2. const CleanWebpackPlugin = require('clean-webpack-plugin')
  3. const OfflinePlugin = require('offline-plugin')
  4. const SimpleProgressWebpackPlugin = require('simple-progress-webpack-plugin')
  5. const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
  6. const common = require('./webpack.common.js')
  7. module.exports = merge(common, {
  8. mode: 'production',
  9. module: {
  10. rules: []
  11. },
  12. plugins: [
  13. new SimpleProgressWebpackPlugin({
  14. format: 'expanded'
  15. }),
  16. new CleanWebpackPlugin([
  17. 'assets/js/*.*',
  18. 'assets/css/*.*',
  19. 'assets/*.js',
  20. 'assets/*.json'
  21. ], {
  22. root: process.cwd(),
  23. verbose: false
  24. }),
  25. new OptimizeCssAssetsPlugin({
  26. cssProcessorOptions: { discardComments: { removeAll: true } },
  27. canPrint: true
  28. }),
  29. new OfflinePlugin({
  30. ServiceWorker: {
  31. minify: false
  32. },
  33. publicPath: '/',
  34. externals: ['/'],
  35. caches: {
  36. main: [
  37. 'js/client.js'
  38. ],
  39. additional: [
  40. ':externals:'
  41. ],
  42. optional: [
  43. 'js/*.chunk.js'
  44. ]
  45. },
  46. safeToUseOptionalCaches: true
  47. })
  48. ]
  49. })