webpack.config.prod.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. 'use strict'
  2. const merge = require('webpack-merge')
  3. const baseConfig = require('./webpack.config.base')
  4. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
  5. const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
  6. module.exports = merge(baseConfig, {
  7. mode: 'production',
  8. optimization: {
  9. splitChunks: {
  10. cacheGroups: {
  11. commons: {
  12. test: /[\\/]node_modules[\\/]/,
  13. name: "vendor",
  14. chunks: "all",
  15. },
  16. },
  17. },
  18. minimizer: [new UglifyJsPlugin({
  19. sourceMap:true,
  20. cache: true,
  21. parallel: true,
  22. uglifyOptions:{
  23. ecma:8,
  24. compress: {
  25. // drop_console: true
  26. pure_funcs: ['console.log']
  27. }
  28. },
  29. exclude: 'vendor.js',
  30. })]
  31. },
  32. module: {
  33. rules: [
  34. {
  35. test: /\.css?$/,
  36. use: [
  37. MiniCssExtractPlugin.loader,
  38. 'css-loader'
  39. ]
  40. }, {
  41. test: /\.scss$/,
  42. use: [
  43. MiniCssExtractPlugin.loader,
  44. 'css-loader',
  45. 'sass-loader'
  46. ]
  47. }
  48. ]
  49. },
  50. plugins: [
  51. new MiniCssExtractPlugin({
  52. filename: 'main.css'
  53. })
  54. ]
  55. })