Ссылка на Github Repo: https://github.com/janschloss/boilerplateГлоток BrowserSync не обновляется
Моя проблема заключается в том, что только изменения SCSS не получают признание BrowserSync в Глоток (без HTML или JS или/IMG изменения). Я предполагаю, что это связано с тем, что изменения scss передаются напрямую. Странно, что у меня была одна сборка, которая признавала изменения html и img, хотя я не могу найти это снова.
Кто-нибудь видит ошибку?
"use strict";
// Define packages
var gulp = require('gulp'),
sass = require('gulp-sass'),
clean = require('gulp-clean'),
sourcemaps = require('gulp-sourcemaps'),
autoprefixer = require('gulp-autoprefixer'),
plumber = require('gulp-plumber'),
imagemin = require('gulp-imagemin'),
uglify = require('gulp-uglify'),
concat = require('gulp-concat'),
strip = require('gulp-strip-comments'),
browserSync = require('browser-sync');
// Define file paths
var scssSrc = 'src/scss/**/*.scss',
jsSrc = 'src/js/*.js',
htmlSrc = 'src/*.html',
imgSrc = 'src/img/*';
// BrowserSync config
gulp.task('browserSyncInit', function() {
browserSync.init({
server: {
baseDir: 'dist'
}
});
gulp.watch('./dist/*').on('change', browserSync.reload);
});
// Concat scss files, compile compressed to css, prefix css, strip comments and create sourcemap
gulp.task('sass', function() {
return gulp.src(scssSrc)
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(concat('main.min.scss'))
.pipe(sass({outputStyle: 'compressed'}))
.pipe(autoprefixer())
.pipe(strip.text())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.reload({
stream: true
}));
});
// Concatenate, uglify, strip comments and create sourcemap for js files
gulp.task('js', function() {
return gulp.src(jsSrc)
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(concat('main.min.js'))
.pipe(uglify())
.pipe(strip())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist/js'));
});
// Image optimization
gulp.task('img', function() {
return gulp.src(imgSrc)
.pipe(imagemin({
progressive: true
}))
.pipe(gulp.dest('dist/img'));
});
// Clean task
gulp.task('clean', function() {
return gulp.src('dist')
.pipe(clean());
});
// Copy html
gulp.task('copy', function() {
return gulp.src(htmlSrc)
.pipe(gulp.dest('dist/'));
});
// Default Task
gulp.task('default', ['clean', 'copy', 'sass', 'js', 'img', 'browserSyncInit'], function() { //todo asynchronous
gulp.watch(scssSrc, ['sass']);
gulp.watch(jsSrc, ['js']);
gulp.watch(imgSrc, ['img']);
gulp.watch(htmlSrc, ['copy']);
});
Я думаю
gulp.watch('./dist/*').on('change', browserSync.reload);
является соответствующая строка. Что-то не так с моим путем?
Моя соответствующая структура папок выглядит следующим образом:
gulpfile.js
src
dist
внесены изменения в ГКЗ и копируются в DIST во время выполнения с глотком.
Спасибо!
Имеет смысл для меня, что scss загружает только изменения, потому что это единственная задача, которая имеет вызов browserSync.reload в ней. Остальные полагаются на часы, которые не работают по какой-то причине. Попробуйте изменить свои часы в папке dist на ./dist/**/*.* http://stackoverflow.com/questions/21689334/gulp-globbing-how-to-watch-everything-below-directory –
@DaveThomas Грустно, что не исправить. –
Вы можете использовать возвышенный текст? Один из моих коллег нашел проблему с тем, как он записывает на диск, не уведомляя часы gulp. –