From 21f417d10c0cf780fb839421663427530bbd4552 Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Sun, 4 Apr 2021 20:19:25 +0200 Subject: [PATCH] feat: optimize assets files. --- client/config/webpack.config.js | 10 ++++++++++ client/package.json | 1 + 2 files changed, 11 insertions(+) diff --git a/client/config/webpack.config.js b/client/config/webpack.config.js index 2f109a713..f671e349b 100644 --- a/client/config/webpack.config.js +++ b/client/config/webpack.config.js @@ -24,6 +24,7 @@ const getClientEnvironment = require('./env'); const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin'); const ForkTsCheckerWebpackPlugin = require('react-dev-utils/ForkTsCheckerWebpackPlugin'); const typescriptFormatter = require('react-dev-utils/typescriptFormatter'); +const CompressionPlugin = require("compression-webpack-plugin"); const postcssNormalize = require('postcss-normalize'); @@ -647,6 +648,15 @@ module.exports = function(webpackEnv) { // The formatter is invoked directly in WebpackDevServerUtils during development formatter: isEnvProduction ? typescriptFormatter : undefined, }), + // Gzip compression. + isEnvProduction && + new CompressionPlugin({ + // asset: "[path].gz[query]", + algorithm: "gzip", + test: /\.js$|\.css$|\.html$/, + threshold: 10240, + minRatio: 0.8 + }) ].filter(Boolean), // Some libraries import Node modules but don't use them in the browser. // Tell webpack to provide empty mocks for them so importing them works. diff --git a/client/package.json b/client/package.json index e0152888e..61f6187e5 100644 --- a/client/package.json +++ b/client/package.json @@ -133,6 +133,7 @@ "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", "@welldone-software/why-did-you-render": "^6.0.0-rc.1", + "compression-webpack-plugin": "^6.1.0", "http-proxy-middleware": "^1.0.0", "react-query-devtools": "^2.1.1", "redux-devtools": "^3.5.0",