Jhernandez has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/379821 )

Change subject: Perf: Use gzip compression on dev and staging
......................................................................

Perf: Use gzip compression on dev and staging

On production gzip on the static assets will be performed by a proxy
instead for performance.

For now, for our own analysis in dev and staging it is very useful.

More at:
https://expressjs.com/en/advanced/best-practice-performance.html

Change-Id: I56ae2ff64ac2b2b4568de426e1632ac510b081b6
---
M package-lock.json
M package.json
M src/server/index.tsx
3 files changed, 17 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/marvin refs/changes/21/379821/1

diff --git a/package-lock.json b/package-lock.json
index 00cce1d..98b229f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,15 @@
         "@types/webpack": "3.0.9"
       }
     },
+    "@types/compression": {
+      "version": "0.0.34",
+      "resolved": 
"https://registry.npmjs.org/@types/compression/-/compression-0.0.34.tgz";,
+      "integrity": 
"sha512-NUEw+1DmdMFjVXSaSYf0okgyrnydH7q2DpWTA5/M5lgsUzwut0Ir8qgkTKCavM558CXhNrj5TTTqe3WCfUHMAQ==",
+      "dev": true,
+      "requires": {
+        "@types/express": "4.0.37"
+      }
+    },
     "@types/express": {
       "version": "4.0.37",
       "resolved": 
"https://registry.npmjs.org/@types/express/-/express-4.0.37.tgz";,
@@ -692,8 +701,7 @@
     "bytes": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz";,
-      "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=",
-      "dev": true
+      "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo="
     },
     "caller-path": {
       "version": "0.1.0",
@@ -962,7 +970,6 @@
       "version": "2.0.11",
       "resolved": 
"https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz";,
       "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=",
-      "dev": true,
       "requires": {
         "mime-db": "1.29.0"
       }
@@ -971,7 +978,6 @@
       "version": "1.7.0",
       "resolved": 
"https://registry.npmjs.org/compression/-/compression-1.7.0.tgz";,
       "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=",
-      "dev": true,
       "requires": {
         "accepts": "1.3.3",
         "bytes": "2.5.0",
@@ -5253,8 +5259,7 @@
     "on-headers": {
       "version": "1.0.1",
       "resolved": 
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz";,
-      "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
-      "dev": true
+      "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
     },
     "once": {
       "version": "1.4.0",
@@ -6601,8 +6606,7 @@
     "safe-buffer": {
       "version": "5.1.1",
       "resolved": 
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz";,
-      "integrity": 
"sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
-      "dev": true
+      "integrity": 
"sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
     },
     "samsam": {
       "version": "1.2.1",
diff --git a/package.json b/package.json
index 11aef2d..d8604bd 100644
--- a/package.json
+++ b/package.json
@@ -44,6 +44,7 @@
     "npm": ">= 5"
   },
   "dependencies": {
+    "compression": "^1.7.0",
     "domino": "^1.0.29",
     "express": "^4.15.3",
     "isomorphic-unfetch": "^2.0.0",
@@ -53,6 +54,7 @@
   },
   "devDependencies": {
     "@types/assets-webpack-plugin": "^3.5.0",
+    "@types/compression": "0.0.34",
     "@types/express": "^4.0.37",
     "@types/extract-text-webpack-plugin": "^2.1.0",
     "@types/history": "^4.6.0",
diff --git a/src/server/index.tsx b/src/server/index.tsx
index f0ea8c3..445e801 100644
--- a/src/server/index.tsx
+++ b/src/server/index.tsx
@@ -12,6 +12,7 @@
 });
 
 import * as express from "express";
+import * as compression from "compression";
 import { h } from "preact";
 import { render as renderToString } from "preact-render-to-string";
 
@@ -33,6 +34,8 @@
 
 const server = express();
 
+server.use(compression());
+
 server.use("/public", express.static("dist/public"));
 
 const render = ({ chunkName, Component, props }: RouteResponse<any, any>) => {

-- 
To view, visit https://gerrit.wikimedia.org/r/379821
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I56ae2ff64ac2b2b4568de426e1632ac510b081b6
Gerrit-PatchSet: 1
Gerrit-Project: marvin
Gerrit-Branch: master
Gerrit-Owner: Jhernandez <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to