Only use file hashing in production
parent
4e12c45057
commit
c77fcedcbb
32
gulpfile.js
32
gulpfile.js
|
@ -370,16 +370,16 @@ gulp.task('less', function() {
|
|||
)
|
||||
.pipe(gulp.dest(dest))
|
||||
// add revision
|
||||
.pipe(rev())
|
||||
.pipe(__DEV__ ? gutil.noop() : rev())
|
||||
// copy files to public
|
||||
.pipe(gulp.dest(dest))
|
||||
.pipe(__DEV__ ? gutil.noop() : gulp.dest(dest))
|
||||
// create and merge manifest
|
||||
.pipe(rev.manifest(manifestName))
|
||||
.pipe(delRev(
|
||||
.pipe(__DEV__ ? gutil.noop() : rev.manifest(manifestName))
|
||||
.pipe(__DEV__ ? gutil.noop() : delRev(
|
||||
dest,
|
||||
manifestName
|
||||
))
|
||||
.pipe(gulp.dest(paths.manifest));
|
||||
.pipe(__DEV__ ? gutil.noop() : gulp.dest(paths.manifest));
|
||||
});
|
||||
|
||||
function getFilesGlob(files) {
|
||||
|
@ -428,17 +428,17 @@ gulp.task('js', function() {
|
|||
return jsFiles
|
||||
.pipe(gulp.dest(dest))
|
||||
// create registry file
|
||||
.pipe(rev())
|
||||
.pipe(__DEV__ ? gutil.noop() : rev())
|
||||
// copy revisioned assets to dest
|
||||
.pipe(gulp.dest(dest))
|
||||
.pipe(__DEV__ ? gutil.noop() : gulp.dest(dest))
|
||||
// create manifest file
|
||||
.pipe(rev.manifest(manifestName))
|
||||
.pipe(delRev(
|
||||
.pipe(__DEV__ ? gutil.noop() : rev.manifest(manifestName))
|
||||
.pipe(__DEV__ ? gutil.noop() : delRev(
|
||||
dest,
|
||||
manifestName
|
||||
))
|
||||
// copy manifest file to dest
|
||||
.pipe(gulp.dest(paths.manifest));
|
||||
.pipe(__DEV__ ? gutil.noop() : gulp.dest(paths.manifest));
|
||||
});
|
||||
|
||||
// commonFramework depend on iFrameScripts
|
||||
|
@ -462,16 +462,16 @@ gulp.task('dependents', ['js'], function() {
|
|||
gutil.noop()
|
||||
)
|
||||
.pipe(__DEV__ ? gutil.noop() : uglify())
|
||||
.pipe(revReplace({ manifest: manifest }))
|
||||
.pipe(__DEV__ ? gutil.noop() : revReplace({ manifest: manifest }))
|
||||
.pipe(gulp.dest(dest))
|
||||
.pipe(rev())
|
||||
.pipe(gulp.dest(dest))
|
||||
.pipe(rev.manifest(manifestName))
|
||||
.pipe(delRev(
|
||||
.pipe(__DEV__ ? gutil.noop() : rev())
|
||||
.pipe(__DEV__ ? gutil.noop() : gulp.dest(dest))
|
||||
.pipe(__DEV__ ? gutil.noop() : rev.manifest(manifestName))
|
||||
.pipe(__DEV__ ? gutil.noop() : delRev(
|
||||
dest,
|
||||
manifestName
|
||||
))
|
||||
.pipe(gulp.dest(paths.manifest));
|
||||
.pipe(__DEV__ ? gutil.noop() : gulp.dest(paths.manifest));
|
||||
});
|
||||
|
||||
function collector(file, memo) {
|
||||
|
|
|
@ -1,31 +1,19 @@
|
|||
import manifest from '../rev-manifest.json';
|
||||
|
||||
const __DEV__ = process.env.NODE_ENV === 'development';
|
||||
const manifestPath = '../rev-manifest.json';
|
||||
|
||||
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 }`;
|
||||
}
|
||||
const boundRev = rev.bind(null, manifest);
|
||||
|
||||
return function(req, res, next) {
|
||||
// in dev environment, we reread the manifest on every call
|
||||
// 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;
|
||||
res.locals.rev = rev;
|
||||
return next();
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue