webpack.demo.build.conf.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const webpack = require('webpack');
  2. const baseConf = require('./webpack.demo.base.conf.js');
  3. const merge = require('webpack-merge');
  4. const path = require('path');
  5. const CopyWebpackPlugin = require('copy-webpack-plugin');
  6. const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
  7. const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
  8. const rimraf = require('rimraf');
  9. rimraf('./dist/sites/demo', function (err) {
  10. if(err) console.log(err);
  11. });
  12. rimraf('./dist/sites/demo.html', function (err) {
  13. if (err) console.log(err);
  14. });
  15. module.exports = merge(baseConf, {
  16. mode: 'production',
  17. devtool: 'cheap-module-source-map',
  18. plugins: [
  19. new webpack.DefinePlugin({
  20. 'process.env': {
  21. NODE_ENV: '"production"'
  22. }
  23. }),
  24. new CopyWebpackPlugin([
  25. { from: path.join(__dirname, "../sites/demo/asset/img/favicon.ico"), to: path.join(__dirname, "../dist/sites/")}
  26. ]),
  27. ],
  28. optimization: {
  29. minimizer: [
  30. new UglifyJsPlugin({
  31. uglifyOptions: {
  32. compress: {
  33. warnings: false
  34. }
  35. },
  36. sourceMap: false,
  37. parallel: true
  38. }),
  39. new OptimizeCSSAssetsPlugin({})
  40. ]
  41. },
  42. });