キャッシュの問題を回避するために、gulp-inject と hash-generator を使用して、毎回一意の名前で 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'));
});