esp8266-react-framework/interface/config-overrides.js

34 lines
1.3 KiB
JavaScript
Raw Normal View History

const CompressionPlugin = require("compression-webpack-plugin");
const ManifestPlugin = require('webpack-manifest-plugin');
const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const path = require('path');
const fs = require('fs');
module.exports = function override(config, env) {
if (env === "production") {
// rename the ouput file, we need it's path to be short, for SPIFFS
config.output.filename = 'js/[name].[chunkhash:4].js';
// disable sourcemap for production build
config.devtool = false;
// take out the manifest and service worker
config.plugins = config.plugins.filter(plugin => !(plugin instanceof ManifestPlugin));
config.plugins = config.plugins.filter(plugin => !(plugin instanceof SWPrecacheWebpackPlugin));
const extractTextPlugin = config.plugins.find((plugin) => plugin instanceof ExtractTextPlugin);
extractTextPlugin.filename = "css/[name].[contenthash:4].css";
// add compression plugin, compress javascript, html and css
config.plugins.push(new CompressionPlugin({
asset: "[path].gz[query]",
algorithm: "gzip",
test: /\.(js|html|css)$/,
deleteOriginalAssets: true
}));
}
return config;
}