我每次都使用 gulp-inject 和 hash-generator 来构建具有唯一名称的 javascript 文件,以避免缓存问题。在构建之前,我运行gulp-clean以删除以前的生成器 javascript 文件。问题是,现在每次我运行npm 构建文件时,即使源代码没有任何变化,也会重新构建文件。我想在运行 clean 和 inject 之前检查源文件中是否发生了变化。我认为gulp-changed有解决方案,但不确定如何使其与哈希和清理一起使用。我的部分实现看起来像这样。
gulp.task('clean-scripts', function () {
// return del(['./static/js/**/*.js'])
return gulp.src(['./static/js/temp/**/*.js', './static/css/**/style-*.css'], {read: false})
.pipe(clean());
});
gulp.task('index', function () {
var target = gulp.src('./templates/base.html');
// It's not necessary to read the files (will speed up things), we're only after their paths:
var sources = gulp.src(['./static/js/temp/**/*.js', './static/css/'+cssFileName], {read: false}, {relative : true});
return target.pipe(inject(sources))
.pipe(gulp.dest('./templates'));
});