2015-01-04 3 views
0

Я новичок в gulp, и я пытаюсь заставить работать с браузером. Кажется, что он отлично работает, за исключением того, что синхронизированный свиток не работает. Может ли кто-нибудь увидеть, что может быть неправильно с моей настройкой.Browsersync не синхронизирует прокрутку

var gulp = require('gulp'), 
    jade = require('gulp-jade'), 
    uglify = require('gulp-uglify'), 
    gutil = require('gulp-util'), 
    sass = require('gulp-sass'), 
    livereload = require('gulp-livereload'), 
    browserSync = require('browser-sync'); 

var outputDir = "builds/development"; 

gulp.task('jade', function() { 
    return gulp.src('src/templates/**/*.jade') 
     .pipe(jade()) 
     .pipe(gulp.dest(outputDir)) 
     .pipe(livereload()); 
}); 

// Js - to uglify use gulp js --type production (or just leave out js to build everything) 
gulp.task('js', function() { 
    return gulp.src('src/js/main.js') 
     .pipe(gutil.env.type === 'production' ? uglify() : gutil.noop()) 
     .pipe(gulp.dest(outputDir + '/js')) 
     .pipe(livereload()); 
}); 

// Sass - to compress use gulp sass --type production (or just leave out sass to build everything) 
gulp.task('sass', function() { 
    var config = {}; 
    if (gutil.env.type === 'production') { 
     config.outputStyle = 'compressed'; 
    } 
    return gulp.src('src/sass/main.scss') 
     .pipe(sass(config)) 
     .pipe(gulp.dest(outputDir + '/css')) 
     .pipe(livereload()); 
}); 

// Browser Sync (not working 100% ... not scrolling) 
gulp.task('browser-sync', function() { 
    browserSync({ 
     proxy: "http://localsandbox.dev/gulptutorial/builds/development/" 
    }); 
}); 




// Watch 
gulp.task('watch', function() { 
    gulp.watch('src/templates/**/*.jade', ['jade']); 
    gulp.watch('src/js/**/*.js', ['js']); 
    gulp.watch('src/sass/**/*.scss', ['sass']); 
}); 


gulp.task('default', ['jade', 'js', 'sass', 'watch', 'browser-sync'], function() { 
    gulp.watch("js/*.js", ['js', browserSync.reload]); 
}); 
+0

У вас есть ошибки (socket.io) в консоли вашего браузера после загрузки страницы с синхронизацией с браузером? Кроме того, я не думаю, что вам нужно использовать функцию livereload в сочетании с browserSync (не уверен, что это может вызвать проблему). Вместо этого используйте browserSync.reload, как описано здесь: http://www.browsersync.io/docs/gulp/ –

ответ

2

Ваша проблема может быть связана с просмотром как с помощью Gulp, так и BrowserSync. Вот хорошая ссылка, что:

«Вы не должны смотреть файлы с BrowserSync + Глоток»https://github.com/shakyShane/gulp-browser-sync/issues/16#issuecomment-43597240

Таким образом, вы, вероятно, хотите удалить LiveReload (пусть BrowserSync обрабатывать все) и изменения используемые по умолчанию Глоток задачи на что-то вроде этого:

gulp.task('default', ['jade', 'js', 'sass', 'browser-sync'], function() { 
    gulp.watch('src/templates/**/*.jade', ['jade', browserSync.reload]); 
    gulp.watch('src/js/**/*.js', ['js', browserSync.reload]); 
    gulp.watch('src/sass/**/*.scss', ['sass', browserSync.reload]); 
}); 

Вы также можете попробовать настройки прокрутки явно (но он по умолчанию верно в любом случае):

gulp.task('browser-sync', function() { 
    browserSync({ 
     proxy: "http://localsandbox.dev/gulptutorial/builds/development/" 
     ghostMode: { 
      scroll: true 
     } 
    }); 
}); 
+0

Присвоение тика, поскольку вы правы, мне не нужно было перезагружать дважды, но я думаю, что у меня было несколько проблем. мой индексный файл в папке builds/development '... gulptutorial/builds/development /' и указание местоположения в 'proxy:' было проблемой. Я поместил html-файл в тот же каталог, что и gulpfile, и установил прокси на 'http: // localsandbox.dev/gulptutorial /', и он отлично работал, не знаю почему ... Я опаздываю на крайний срок, поэтому нет времени для расследования теперь ... может быть, вы знаете и хотели бы прокомментировать ... спасибо, в любом случае, его работа сейчас – byronyasgur