var gulp = require('gulp'),
watch = require('gulp-watch'),
prefixer = require('gulp-autoprefixer'),
uglify = require('gulp-uglify'),
sass = require('gulp-sass'),
sourcemaps = require('gulp-sourcemaps'),
rigger = require('gulp-rigger'),
cssmin = require('gulp-minify-css'),
rimraf = require('rimraf'),
browserSync = require("browser-sync"),
plumber = require("gulp-plumber"),
reload = browserSync.reload,
gutil = require('gulp-util');
var path = {
build: { //Тут мы укажем куда складывать готовые после сборки файлы
html: 'build/',
js: 'build/js/',
css: 'build/css/',
fonts: 'build/fonts/'
},
src: { //Пути откуда брать исходники
html: 'src/*.html', //Синтаксис src/*.html говорит gulp что мы хотим взять все файлы с расширением .html
js: 'src/js/common.js',//В стилях и скриптах нам понадобятся только main файлы
css: 'src/sass/main.sass',
fonts: 'src/fonts/**/*.*'
},
watch: { //Тут мы укажем, за изменением каких файлов мы хотим наблюдать
html: 'src/**/*.html',
js: 'src/js/**/*.js',
style: 'src/sass/**/*.sass',
fonts: 'src/fonts/**/*.*'
},
clean: './build'
};
gulp.task('browserSync', function() {
browserSync.init({
server: {
baseDir: 'app'
},
})
})
var config = {
server: {
baseDir: "./build"
},
tunnel: true,
host: 'localhost',
port: 3000,
logPrefix: "gulp_frontend"
};
gulp.task('html:build', function () {
gulp.src(path.src.html) //Выберем файлы по нужному пути
.pipe(plumber())
.pipe(rigger()) //Прогоним через rigger
.pipe(gulp.dest(path.build.html)) //Выплюнем их в папку build
.pipe(reload({stream: true})); //И перезагрузим наш сервер для обновлений
});
gulp.task('js:build', function () {
gulp.src(path.src.js) //Найдем наш main файл
.pipe(plumber())
.pipe(rigger()) //Прогоним через rigger
.pipe(sourcemaps.init()) //Инициализируем sourcemap
.pipe(uglify().on('error', gutil.log)) //Сожмем наш js
.pipe(sourcemaps.write()) //Пропишем карты
.pipe(gulp.dest(path.build.js)) //Выплюнем готовый файл в build
.pipe(reload({stream: true})); //И перезагрузим сервер
});
gulp.task('style:build', function () {
gulp.src(path.src.css) //Выберем наш main.scss
.pipe(plumber())
.pipe(sourcemaps.init()) //То же самое что и с js
.pipe(sass()) //Скомпилируем
.pipe(prefixer()) //Добавим вендорные префиксы
.pipe(cssmin()) //Сожмем
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.build.css)) //И в build
.pipe(reload({stream: true}));
});
gulp.task('fonts:build', function() {
gulp.src(path.src.fonts)
.pipe(plumber())
.pipe(gulp.dest(path.build.fonts))
});
gulp.task('build', [
'html:build',
'js:build',
'style:build',
'fonts:build'
]);
gulp.task('watch', function(){
watch([path.watch.html], function(event, cb) {
gulp.start('html:build');
});
watch([path.watch.style], function(event, cb) {
gulp.start('style:build');
});
watch([path.watch.js], function(event, cb) {
gulp.start('js:build');
});
watch([path.watch.fonts], function(event, cb) {
gulp.start('fonts:build');
});
});
gulp.task('browserSync', function() {
browserSync.init({
server: {
baseDir: './build'
},
})
})
gulp.task('clean', function (cb) {
rimraf(path.clean, cb);
});
gulp.task('default', ['build', 'browserSync', 'watch']);
Всем привет! Вдруг перестал работать gulp. Раньше при запуске включался browserSync и все обновлялось с gulp watch. Теперь browserSync не запускается и ничего не отслеживается. Есть подозрение, что gulp не нравится название путей к файлу стилей. Ему не нравится css, но нравится в пути что бы было название папки sass. Но переименовав папку на компе, оно запускает browserSync, но не отслеживает watch???? Почему вдруг?
В другом проекте все работает. Ничего не делал, правил стили... и вдруг...