Only use file hashing in production
This commit is contained in:
32
gulpfile.js
32
gulpfile.js
@ -370,16 +370,16 @@ gulp.task('less', function() {
|
|||||||
)
|
)
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(gulp.dest(dest))
|
||||||
// add revision
|
// add revision
|
||||||
.pipe(rev())
|
.pipe(__DEV__ ? gutil.noop() : rev())
|
||||||
// copy files to public
|
// copy files to public
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(__DEV__ ? gutil.noop() : gulp.dest(dest))
|
||||||
// create and merge manifest
|
// create and merge manifest
|
||||||
.pipe(rev.manifest(manifestName))
|
.pipe(__DEV__ ? gutil.noop() : rev.manifest(manifestName))
|
||||||
.pipe(delRev(
|
.pipe(__DEV__ ? gutil.noop() : delRev(
|
||||||
dest,
|
dest,
|
||||||
manifestName
|
manifestName
|
||||||
))
|
))
|
||||||
.pipe(gulp.dest(paths.manifest));
|
.pipe(__DEV__ ? gutil.noop() : gulp.dest(paths.manifest));
|
||||||
});
|
});
|
||||||
|
|
||||||
function getFilesGlob(files) {
|
function getFilesGlob(files) {
|
||||||
@ -428,17 +428,17 @@ gulp.task('js', function() {
|
|||||||
return jsFiles
|
return jsFiles
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(gulp.dest(dest))
|
||||||
// create registry file
|
// create registry file
|
||||||
.pipe(rev())
|
.pipe(__DEV__ ? gutil.noop() : rev())
|
||||||
// copy revisioned assets to dest
|
// copy revisioned assets to dest
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(__DEV__ ? gutil.noop() : gulp.dest(dest))
|
||||||
// create manifest file
|
// create manifest file
|
||||||
.pipe(rev.manifest(manifestName))
|
.pipe(__DEV__ ? gutil.noop() : rev.manifest(manifestName))
|
||||||
.pipe(delRev(
|
.pipe(__DEV__ ? gutil.noop() : delRev(
|
||||||
dest,
|
dest,
|
||||||
manifestName
|
manifestName
|
||||||
))
|
))
|
||||||
// copy manifest file to dest
|
// copy manifest file to dest
|
||||||
.pipe(gulp.dest(paths.manifest));
|
.pipe(__DEV__ ? gutil.noop() : gulp.dest(paths.manifest));
|
||||||
});
|
});
|
||||||
|
|
||||||
// commonFramework depend on iFrameScripts
|
// commonFramework depend on iFrameScripts
|
||||||
@ -462,16 +462,16 @@ gulp.task('dependents', ['js'], function() {
|
|||||||
gutil.noop()
|
gutil.noop()
|
||||||
)
|
)
|
||||||
.pipe(__DEV__ ? gutil.noop() : uglify())
|
.pipe(__DEV__ ? gutil.noop() : uglify())
|
||||||
.pipe(revReplace({ manifest: manifest }))
|
.pipe(__DEV__ ? gutil.noop() : revReplace({ manifest: manifest }))
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(gulp.dest(dest))
|
||||||
.pipe(rev())
|
.pipe(__DEV__ ? gutil.noop() : rev())
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(__DEV__ ? gutil.noop() : gulp.dest(dest))
|
||||||
.pipe(rev.manifest(manifestName))
|
.pipe(__DEV__ ? gutil.noop() : rev.manifest(manifestName))
|
||||||
.pipe(delRev(
|
.pipe(__DEV__ ? gutil.noop() : delRev(
|
||||||
dest,
|
dest,
|
||||||
manifestName
|
manifestName
|
||||||
))
|
))
|
||||||
.pipe(gulp.dest(paths.manifest));
|
.pipe(__DEV__ ? gutil.noop() : gulp.dest(paths.manifest));
|
||||||
});
|
});
|
||||||
|
|
||||||
function collector(file, memo) {
|
function collector(file, memo) {
|
||||||
|
@ -1,31 +1,19 @@
|
|||||||
import manifest from '../rev-manifest.json';
|
import manifest from '../rev-manifest.json';
|
||||||
|
|
||||||
const __DEV__ = process.env.NODE_ENV === 'development';
|
const __DEV__ = process.env.NODE_ENV === 'development';
|
||||||
const manifestPath = '../rev-manifest.json';
|
|
||||||
|
|
||||||
export default function({ globalPrepend = '' } = {}) {
|
export default function({ globalPrepend = '' } = {}) {
|
||||||
|
|
||||||
function rev(manifest, scopedPrepend, asset) {
|
function rev(scopedPrepend, asset) {
|
||||||
|
if (__DEV__) {
|
||||||
|
// do not use revision in dev mode
|
||||||
|
return `${globalPrepend}${scopedPrepend}/${asset}`;
|
||||||
|
}
|
||||||
return `${globalPrepend}${scopedPrepend}/${ manifest[asset] || asset }`;
|
return `${globalPrepend}${scopedPrepend}/${ manifest[asset] || asset }`;
|
||||||
}
|
}
|
||||||
const boundRev = rev.bind(null, manifest);
|
|
||||||
|
|
||||||
return function(req, res, next) {
|
return function(req, res, next) {
|
||||||
// in dev environment, we reread the manifest on every call
|
res.locals.rev = rev;
|
||||||
// this means we do not need to restart server on every change to
|
|
||||||
// client code
|
|
||||||
if (__DEV__) {
|
|
||||||
// we first need to remove the manifest from require cache
|
|
||||||
delete require.cache[require.resolve(manifestPath)];
|
|
||||||
// and re-require
|
|
||||||
const manifest = require(manifestPath);
|
|
||||||
res.locals.rev = rev.bind(null, manifest);
|
|
||||||
return next();
|
|
||||||
}
|
|
||||||
|
|
||||||
// in production we take use the initially loaded manifest
|
|
||||||
// since this should not change in production
|
|
||||||
res.locals.rev = boundRev;
|
|
||||||
return next();
|
return next();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user