Fork of the excellent esp8266-react - https://github.com/rjwats/esp8266-react
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.2 KiB

  1. const CompressionPlugin = require("compression-webpack-plugin");
  2. const ManifestPlugin = require('webpack-manifest-plugin');
  3. const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin');
  4. const ExtractTextPlugin = require('extract-text-webpack-plugin');
  5. const path = require('path');
  6. const fs = require('fs');
  7. module.exports = function override(config, env) {
  8. if (env === "production") {
  9. // rename the ouput file, we need it's path to be short, for SPIFFS
  10. config.output.filename = 'js/[name].[chunkhash:4].js';
  11. // disable sourcemap for production build
  12. config.devtool = false;
  13. // take out the manifest and service worker
  14. config.plugins = config.plugins.filter(plugin => !(plugin instanceof ManifestPlugin));
  15. config.plugins = config.plugins.filter(plugin => !(plugin instanceof SWPrecacheWebpackPlugin));
  16. const extractTextPlugin = config.plugins.find((plugin) => plugin instanceof ExtractTextPlugin);
  17. extractTextPlugin.filename = "css/[name].[contenthash:4].css";
  18. // add compression plugin, compress javascript
  19. config.plugins.push(new CompressionPlugin({
  20. asset: "[path].gz[query]",
  21. algorithm: "gzip",
  22. test: /\.(js)$/,
  23. deleteOriginalAssets: true
  24. }));
  25. }
  26. return config;
  27. }