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';
|
||||
|
||||
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;
|
||||
|
||||
@@ -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')))
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')))
|
||||
|
||||
Reference in New Issue
Block a user