Link zu Github Repo: https://github.com/janschloss/boilerplateGulp BrowserSync nicht aktualisiert
Mein Problem ist, dass nur SCSS Änderungen von BrowserSync in Gulp anerkannt zu bekommen (kein HTML oder js oder/img Änderungen). Ich denke, das liegt daran, dass scss-Änderungen direkt gestreamt werden. Seltsamerweise hatte ich einen Build, der HTML und IMG Änderungen erkannte, obwohl ich das nicht wieder finden kann.
Seht jemand den Fehler?
"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']);
});
Ich denke
gulp.watch('./dist/*').on('change', browserSync.reload);
die entsprechende Zeile ist. Ist irgendetwas mit meinem Weg nicht in Ordnung?
Meine relevante Ordnerstruktur wie folgt aussieht:
gulpfile.js
src
dist
Änderungen in src gemacht werden und kopiert auf Laufzeit mit großem Schluck Dist.
Danke!
Es macht für mich Sinn, dass das scss nur Änderungen lädt, weil es die einzige Aufgabe ist, die einen Aufruf von browserSync.reload in es hat. Die anderen verlassen sich auf die Uhr, die aus irgendeinem Grund nicht funktioniert. Versuchen Sie, Ihre Uhr im Ordner "dist" in "./dist/**/*.*" zu ändern. Http://stackoverflow.com/questions/21689334/gulp-globbing-how-to-watch-everything-below-directory –
@DaveThomas Traurig reparierte es nicht. –
Verwenden Sie möglicherweise erhabenen Text? Ein Kollege von mir fand ein Problem mit der Art, wie es auf die Festplatte schreibt, keine Schluckuhr zu benachrichtigen –