feat(jade): Add cacheBreaker for dev browser cache breaking
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import _ from 'lodash';
|
||||||
import manifest from '../rev-manifest';
|
import manifest from '../rev-manifest';
|
||||||
|
|
||||||
let chunkManifest;
|
let chunkManifest;
|
||||||
@@ -12,11 +13,11 @@ chunkManifest = Object.keys(chunkManifest).reduce((manifest, key) => {
|
|||||||
return manifest;
|
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;
|
const challengesRegex = /^(bonfire|waypoint|zipline|basejump|checkpoint):\s/i;
|
||||||
|
|
||||||
function rev(scopedPrepend, asset) {
|
function rev(scopedPrepend, asset) {
|
||||||
if (__DEV__) {
|
if (isDev) {
|
||||||
// do not use revision in dev mode
|
// do not use revision in dev mode
|
||||||
return `${scopedPrepend}/${asset}`;
|
return `${scopedPrepend}/${asset}`;
|
||||||
}
|
}
|
||||||
@@ -27,6 +28,11 @@ function removeOldTerms(str = '') {
|
|||||||
return str.replace(challengesRegex, '');
|
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() {
|
export default function jadeHelpers() {
|
||||||
return function jadeHelpersMiddleware(req, res, next) {
|
return function jadeHelpersMiddleware(req, res, next) {
|
||||||
res.locals.removeOldTerms = removeOldTerms;
|
res.locals.removeOldTerms = removeOldTerms;
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ html(lang='en').full-size
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
script(src=rev('/js', 'vendor-challenges.js'))
|
script(src=rev('/js', 'vendor-challenges.js'))
|
||||||
script(src=rev('/js', 'bundle.js'))
|
script(src=cacheBreaker(rev('/js', 'bundle.js')))
|
||||||
|
|||||||
@@ -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/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/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='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
|
include meta
|
||||||
meta(charset='utf-8')
|
meta(charset='utf-8')
|
||||||
|
|||||||
@@ -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" 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/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='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')))
|
||||||
|
|||||||
Reference in New Issue
Block a user