webpack.prod.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /**
  2. * @author: Yuki Takei <yuki@weseek.co.jp>
  3. */
  4. const helpers = require('./helpers');
  5. const webpackMerge = require('webpack-merge'); // used to merge webpack configs
  6. const commonConfig = require('./webpack.common.js'); // the settings that are common to prod and dev
  7. /**
  8. * Webpack Plugins
  9. */
  10. const CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');
  11. const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin');
  12. const OptimizeJsPlugin = require('optimize-js-plugin');
  13. /**
  14. * Webpack Constants
  15. */
  16. const ENV = process.env.NODE_ENV = process.env.ENV = 'production';
  17. const HOST = process.env.HOST || 'localhost';
  18. const PORT = process.env.PORT || 3000;
  19. module.exports = function (env) {
  20. return webpackMerge(commonConfig({ env: ENV }), {
  21. devtool: 'source-map',
  22. output: {
  23. path: helpers.root('public/js'),
  24. publicPath: '/js/',
  25. filename: '[name].[chunkhash].bundle.js',
  26. sourceMapFilename: '[name].[chunkhash].bundle.map',
  27. chunkFilename: '[id].[chunkhash].chunk.js'
  28. },
  29. module: {
  30. rules: [
  31. ]
  32. },
  33. plugins: [
  34. new OptimizeJsPlugin({
  35. sourceMap: false
  36. }),
  37. new UglifyJsPlugin({
  38. // beautify: true, //debug
  39. // mangle: false, //debug
  40. // dead_code: false, //debug
  41. // unused: false, //debug
  42. // deadCode: false, //debug
  43. // compress: {
  44. // screw_ie8: true,
  45. // keep_fnames: true,
  46. // drop_debugger: false,
  47. // dead_code: false,
  48. // unused: false
  49. // }, // debug
  50. // comments: true, //debug
  51. beautify: false, //prod
  52. output: {
  53. comments: false
  54. }, //prod
  55. mangle: {
  56. screw_ie8: true
  57. }, //prod
  58. compress: {
  59. screw_ie8: true,
  60. warnings: false,
  61. conditionals: true,
  62. unused: true,
  63. comparisons: true,
  64. sequences: true,
  65. dead_code: true,
  66. evaluate: true,
  67. if_return: true,
  68. join_vars: true,
  69. negate_iife: false // we need this for lazy v8
  70. },
  71. }),
  72. ],
  73. });
  74. }