Алексей Лапаев
Мудрец
(17462)
1 год назад
Этот gulp файл содержит несколько задач (tasks), которые выполняются для автоматизации процесса разработки. Давайте посмотрим на каждую из них:
1. **server**: Эта задача запускает сервер BrowserSync, который автоматически обновляет браузер при изменении исходных файлов проекта. Сервер настроен на слежение за всеми HTML-файлами в каталоге "src".
2. **styles**: Эта задача берет все файлы .scss или .sass из папки "src/sass", компилирует их в CSS с помощью пакета gulp-sass, минифицирует и переименовывает с добавлением суффикса '.min'. Затем к ним применяется автопрефиксер, который автоматически добавляет необходимые префиксы для различных браузеров. Затем эти файлы очищаются для обеспечения совместимости с IE8 с помощью gulp-clean-css и помещаются в папку "src/css". Затем обновляется поток BrowserSync для автоматического обновления браузера.
3. **watch**: Эта задача следит за изменениями во всех .scss и .sass файлах в каталоге "src/sass" и запускает задачу 'styles' при обнаружении изменений.
4. **default**: Это основная задача, которая запускается, когда вы вызываете `gulp` в командной строке без аргументов. Она выполняет задачи 'watch', 'server' и 'styles' параллельно.
Итак, в общем, этот gulp файл автоматизирует процесс разработки, отслеживая изменения в .scss и .sass файлах, компилируя их в CSS, добавляя префиксы, минифицируя и обновляя браузер при любых изменениях.
const browserSync = require('browser-sync');
const sass = require('gulp-sass')(require('sass'));
const cleanCSS = require('gulp-clean-css');
const autoprefixer = require('gulp-autoprefixer');
const rename = require("gulp-rename");
gulp.task('server', function() {
browserSync({
server: {
baseDir: "src"
}
});
gulp.watch ("src/*.html").on('change', browserSync.reload);
});
gulp.task('styles', function() {
return gulp.src("src/sass/**/*.+(scss|sass)")
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(rename({suffix: '.min', prefix: ''}))
.pipe(autoprefixer())
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(gulp.dest("src/css"))
.pipe( browserSync.stream ());
});
gulp.task('watch', function() {
gulp.watch ("src/sass/**/*.+(scss|sass)", gulp.parallel('styles'));
})
gulp.task('default', gulp.parallel('watch', 'server', 'styles'));
- объясните пж как работает?