0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-27 11:32:38 +00:00

Serve compressed static files if available

This commit is contained in:
Trevor Buckner
2020-11-11 21:19:49 -05:00
parent 3b52888877
commit 600ca90fc0
2 changed files with 27 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
const fs = require('fs-extra');
const zlib = require('zlib');
const Proj = require('./project.json');
const { pack, watchFile, livereload } = require('vitreum');
@@ -14,10 +15,16 @@ const transforms = {
};
const build = async ({ bundle, render, ssr })=>{
await fs.outputFile('./build/homebrew/bundle.css', await lessTransform.generate({ paths: './shared' }));
const css = await lessTransform.generate({ paths: './shared' });
await fs.outputFile('./build/homebrew/bundle.css', css);
await fs.outputFile('./build/homebrew/bundle.js', bundle);
await fs.outputFile('./build/homebrew/ssr.js', ssr);
await fs.outputFile('./build/homebrew/render.js', render);
//compress files
await fs.outputFile('./build/homebrew/bundle.css.br', zlib.brotliCompressSync(css));
await fs.outputFile('./build/homebrew/bundle.js.br', zlib.brotliCompressSync(bundle));
await fs.outputFile('./build/homebrew/ssr.js.br', zlib.brotliCompressSync(ssr));
};
fs.emptyDirSync('./build/homebrew');

View File

@@ -1,11 +1,30 @@
const _ = require('lodash');
const jwt = require('jwt-simple');
const fs = require('fs-extra');
const express = require('express');
const app = express();
const homebrewApi = require('./server/homebrew.api.js');
const GoogleActions = require('./server/googleActions.js');
// Serve brotli-compressed static files if available
app.get('*.js', function(req, res, next) {
if(fs.existsSync('build' + req.url + '.br')){
req.url = req.url + '.br';
res.set('Content-Encoding', 'br');
res.set('Content-Type', 'text/javascript');
}
next();
});
app.get('*.css', function(req, res, next) {
if(fs.existsSync('build' + req.url + '.br')){
req.url = req.url + '.br';
res.set('Content-Encoding', 'br');
res.set('Content-Type', 'text/javascript');
}
next();
});
app.use(express.static(`${__dirname}/build`));
app.use(require('body-parser').json({ limit: '25mb' }));
app.use(require('cookie-parser')());