feat(jade): Add cacheBreaker for dev browser cache breaking

This commit is contained in:
Berkeley Martinez
2018-01-18 15:15:52 -08:00
parent 3bdf859c73
commit 9a481afe6a
4 changed files with 11 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
import _ from 'lodash';
import manifest from '../rev-manifest';
let chunkManifest;
@@ -12,11 +13,11 @@ chunkManifest = Object.keys(chunkManifest).reduce((manifest, key) => {
return manifest;
}, {});
const __DEV__ = process.env.NODE_ENV !== 'production';
const isDev = process.env.NODE_ENV !== 'production';
const challengesRegex = /^(bonfire|waypoint|zipline|basejump|checkpoint):\s/i;
function rev(scopedPrepend, asset) {
if (__DEV__) {
if (isDev) {
// do not use revision in dev mode
return `${scopedPrepend}/${asset}`;
}
@@ -27,6 +28,11 @@ function removeOldTerms(str = '') {
return str.replace(challengesRegex, '');
}
const cacheBreaker = isDev ?
// add cacheBreaker in dev instead of rev manifest
asset => `${asset}?cacheBreaker=${Math.random()}` :
_.identity;
export default function jadeHelpers() {
return function jadeHelpersMiddleware(req, res, next) {
res.locals.removeOldTerms = removeOldTerms;

View File

@@ -24,4 +24,4 @@ html(lang='en').full-size
}
})();
script(src=rev('/js', 'vendor-challenges.js'))
script(src=rev('/js', 'bundle.js'))
script(src=cacheBreaker(rev('/js', 'bundle.js')))

View File

@@ -4,7 +4,7 @@ link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.30.0/codemirror.min.css')
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.30.0/theme/dracula.min.css')
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.30.0/addon/lint/lint.min.css')
link(rel='stylesheet', href=rev('/css', 'main.css'))
link(rel='stylesheet', href=cacheBreaker(rev('/css', 'main.css')))
include meta
meta(charset='utf-8')

View File

@@ -2,4 +2,4 @@ link(rel='stylesheet', type='text/css' href='/css/lato.css')
link(rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cal-heatmap/3.5.2/cal-heatmap.css")
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css')
link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.8.2/css/lightbox.min.css')
link(rel='stylesheet', href=rev('/css', 'main.css'))
link(rel='stylesheet', href=cacheBreaker(rev('/css', 'main.css')))