Gulp-livereload, -webserver и -embedlr. Как использовать их вместе?
Я пытаюсь понять, как использовать gulp с этими полезными и популярными плагинами. Вот что у меня есть:
- запущенный сервер go(lang) на локальном хосте:8000
- статические / локальные html-файлы в папке приложения, которые используются сервером для формирования страниц
- файлы scss в том же каталоге, которые преобразуются в css и затем автоматически префиксируются
Вот мой gulpfile.js:
var gulp = require('gulp'),
sass = require('gulp-sass'),
watch = require('gulp-watch'),
autoprefixer = require('gulp-autoprefixer'),
livereload = require('gulp-livereload');
// "./" - it's "app" directory
gulp.task('default', function() {
return gulp.src('./*.scss')
.pipe(watch('./*.scss'))
.pipe(sass())
.pipe(autoprefixer('> 5%'))
.pipe(gulp.dest('./'));
});
Итак, что мне нужно:
- смотрите html, css/scss файлы на предмет изменений и перезагружайте на localhost:8000 (открытая вкладка chrome)
- будет здорово, если нет необходимости использовать:
- LiveRload Chrome плагин
- рамки экспресс
- перезагрузите html-страницы, если они открываются напрямую, как файл без сервера
Я читал, что этого можно добиться с помощью gulp-embedlr и gulp -webserver. Если да, то как это сделать?
1 ответ
Решение
Хорошо, лучшее решение, которое я найду, это использование Gulp + BrowserSync! Это отличное решение.
Вот код моего gulpfile.js:
var gulp = require('gulp'),
sourcemaps = require('gulp-sourcemaps'),
sass = require('gulp-sass'),
watch = require('gulp-watch'),
autoprefixer = require('gulp-autoprefixer'),
browserSync = require('browser-sync'),
reload = browserSync.reload;
gulp.task('browserSync', function() {
browserSync({
//logConnections: false,
//logFileChanges: false,
notify: false,
open: false,
server: {
baseDir: "./"
}
});
});
gulp.task('sass', function() {
return gulp.src('./css/*.scss')
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoprefixer('> 5%'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('./css'))
.pipe(reload({stream:true}));
});
gulp.task('watch', function() {
gulp.watch('./css/*.scss', ['sass']);
gulp.watch('./*.html', reload);
});
gulp.task('default', ['watch', 'sass', 'browserSync']);
Нет смысла объяснять код выше. Просто прочитайте это: http://www.browsersync.io/docs/gulp/