const webpack = require(“webpack”); const config = require(“./shared”); const CompressionPlugin = require(“compression-webpack-plugin”); const sprocketsRailsManifestPlugin = require(“./plugins/sprockets-rails-manifest.js”); const extractTextCssPlugin = require(“./plugins/extract-text-css”); const extractTextSassLoader = require(“./loaders/extract-text-sass”);

config.output.filename = “[name]-.js”;

config.plugins.unshift(

extractTextCssPlugin

); config.plugins.unshift(

new webpack.DefinePlugin({
  "process.env": {
    NODE_ENV: JSON.stringify("production")
  }
})

);

config.plugins = config.plugins.concat([

extractTextCssPlugin,

new webpack.optimize.UglifyJsPlugin({
  compress: {
    warnings: false
  },
  mangle: false
}),

new CompressionPlugin({
  asset: "[path].gz[query]",
  algorithm: "gzip",
  test: /\.js$/,
  threshold: 10240,
  minRatio: 0.8
}),

sprocketsRailsManifestPlugin

]);

config.module.rules.push(extractTextSassLoader);

module.exports = config;