Skip to content

Commit adc3432

Browse files
authored
Short-circuit cachebust for development (swapagarwal#170)
Fixes swapagarwal#164 - disable `cachebust` task for dev - move `rev-manifest.json` to `dist/`
1 parent 73422dd commit adc3432

File tree

5 files changed

+1116
-1806
lines changed

5 files changed

+1116
-1806
lines changed

.gitignore

-2
Original file line numberDiff line numberDiff line change
@@ -81,5 +81,3 @@ typings/
8181

8282

8383
# End of https://www.gitignore.io/api/node
84-
85-
rev-manifest.json

gulpfile.js

+30-19
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ const responsive = require('gulp-responsive');
1414

1515
const {swagList, swagImages} = require('./get-data');
1616

17+
const PRODUCTION = process.env.NODE_ENV === 'production';
18+
19+
const REV_PATH = './dist/rev-manifest.json';
1720
const RESIZE_OPTS = {
1821
quality: 90,
1922
progressive: true,
@@ -22,6 +25,11 @@ const RESIZE_OPTS = {
2225
errorOnUnusedConfig: false
2326
};
2427

28+
let manifest = {
29+
'css/index.css': 'css/index.css',
30+
'js/index.js': 'js/index.js',
31+
};
32+
2533
gulp.task('pug', () => {
2634
const tags = Array.from(swagList.reduce(
2735
(tagList, { tags }) => {
@@ -31,7 +39,11 @@ gulp.task('pug', () => {
3139
new Set()
3240
)).sort();
3341

34-
const manifest = require('./rev-manifest.json');
42+
if (PRODUCTION) {
43+
delete require.cache[require.resolve(REV_PATH)];
44+
manifest = require(REV_PATH);
45+
}
46+
3547
const bustedAssets = {
3648
css: `/assets/${manifest['css/index.css']}`,
3749
js: `/assets/${manifest['js/index.js']}`
@@ -98,34 +110,33 @@ gulp.task('swag-img:optimize', () => {
98110

99111
gulp.task('swag-img', gulp.series('swag-img:clean', 'swag-img:download' , 'swag-img:optimize'));
100112

101-
gulp.task('clean', () => {
102-
return del([
103-
'./rev-manifest.json',
104-
'dist/assets/css/*',
105-
'dist/assets/js/*',
106-
'dist/assets/swag-img/*'
107-
]);
108-
});
113+
gulp.task('clean:styl', () => del('dist/assets/css/*'));
114+
gulp.task('clean:js', () => del('dist/assets/js/*'));
115+
gulp.task('clean:assets', gulp.parallel('clean:styl', 'clean:js'));
116+
gulp.task('clean:pug', () => del('dist/index.html'));
117+
gulp.task('clean', gulp.parallel('clean:pug', 'clean:assets'));
109118

110119
gulp.task('cachebust', cb => {
120+
const basePath = 'dist/assets';
111121
const bustedFiles = [
112122
'dist/assets/css/*',
113123
'dist/assets/js/*',
114124
'dist/assets/swag-img/*'
115125
];
116126

117-
return gulp.src(bustedFiles, {base: 'dist/assets/'})
127+
return gulp.src(bustedFiles, {base: basePath})
118128
.pipe(cachebust())
119129
.pipe(cacheClean())
120-
.pipe(gulp.dest('dist/assets'))
130+
.pipe(gulp.dest(basePath))
121131
.pipe(cachebust.manifest({
122-
base: 'dist/assets',
123-
merge: true
132+
path: REV_PATH,
133+
base: basePath,
124134
}))
125-
.pipe(gulp.dest('dist/assets/'))
135+
.pipe(gulp.dest(basePath))
126136
.on('end', () => {
127-
delete require.cache[require.resolve('./rev-manifest.json')];
128-
const manifest = require('./rev-manifest.json');
137+
delete require.cache[require.resolve(REV_PATH)];
138+
manifest = require(REV_PATH);
139+
129140
swagList.forEach(swag => {
130141
const filename = `swag-img/${swag.image.split('/').pop()}`;
131142
if (!manifest[filename]) {
@@ -148,9 +159,9 @@ gulp.task('webserver', () => {
148159
});
149160

150161
gulp.task('watch', () => {
151-
gulp.watch('src/pug/**/*.pug', gulp.parallel('pug'));
152-
gulp.watch('src/styl/**/*.styl', gulp.series('clean', 'styl', 'cachebust'));
153-
gulp.watch('src/js/*.js', gulp.series('clean', 'js', 'cachebust'));
162+
gulp.watch('src/pug/**/*.pug', gulp.series('pug'));
163+
gulp.watch('src/styl/**/*.styl', gulp.series('clean:styl', 'styl'));
164+
gulp.watch('src/js/*.js', gulp.series('clean:js', 'js'));
154165
});
155166

156167
gulp.task('build', gulp.series(

netlify.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[build]
22
base = "/"
33
publish = "dist"
4-
command = "gulp build"
4+
command = "npm run build"
55

66
[build.environment]
77
NODE_VERSION = "10"

0 commit comments

Comments
 (0)