css-инъекция в браузере не работает для css-файлов
Я использую gulp-rev для кеширования моих скомпилированных файлов scss. Это означает, что инъекции CSS работают только тогда, когда я ничего не меняю в своем файле CSS. Если я что-то изменю, gulp-rev присвоит файлу другое имя, а browserSync не узнает, как его вставить. Вот задача scss в моем файле gulpfile:
Object.keys(styles).forEach(function(key){
gulp.task('css-' + key, function(){
del.sync([
'./public/' + styles[key].dir + manifest[key + '.css'],
'./public/' + styles[key].dir + '/maps/' + manifest[key + '.css'] + '.map'
]);
return gulp.src('./source/' + styles[key].dir + key + '.scss')
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(minifycss())
.pipe(autoprefixer())
.pipe(rev())
.pipe(sourcemaps.write('maps/'))
.pipe(tap(updateManifest))
.pipe(gulp.dest('public/' + styles[key].dir))
.pipe(gulpif(
function(file){return path.extname(file.path) === '.css'},
browsersync.stream()
));
});
});
1 ответ
Я считаю, что в целом вы не должны вносить изменения в процессе разработки. Если вы беспокоитесь о кэш-очистке, это не должно быть проблемой, и вы всегда можете выполнить перезагрузку. Тем не менее, вы также можете настроить свой локальный сервер разработчика, чтобы установить максимальный возраст 0 или установить заголовок Cache-Control: no-cache
,
У вас должна быть отдельная задача gulp для вашего дистрибутива (или применять rev только при сборке версии dist).