60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
import dartSass from 'sass';
|
|
import gulpSass from 'gulp-sass';
|
|
import rename from 'gulp-rename';
|
|
|
|
import cleanCss from 'gulp-clean-css'; // Сжатие CSS файла
|
|
import webpcss from 'gulp-webpcss'; // Вывод WEBP изображений
|
|
import autoprefixer from 'gulp-autoprefixer'; // Добавление вендорных префиксов
|
|
import groupCssMediaQueries from 'gulp-group-css-media-queries'; // Групировка медиа запросов
|
|
|
|
const sass = gulpSass(dartSass);
|
|
|
|
export const scss = () => {
|
|
return app.gulp.src(app.path.src.scss, { sourcemaps: app.isDev })
|
|
.pipe(app.plugins.plumber(
|
|
app.plugins.notify.onError({
|
|
title: "SCSS",
|
|
message: "Error: <%= error.message %>"
|
|
})))
|
|
.pipe(sass({
|
|
outputStyle: 'expanded'
|
|
}))
|
|
.pipe(app.plugins.replace(/@img\//g, '../img/'))
|
|
.pipe(
|
|
app.plugins.if(
|
|
app.isBuild,
|
|
groupCssMediaQueries()
|
|
)
|
|
)
|
|
.pipe(
|
|
app.plugins.if(
|
|
app.isBuild,
|
|
autoprefixer({
|
|
grid: true,
|
|
overrideBrowserslist: ["last 3 versions"],
|
|
cascade: true
|
|
})
|
|
)
|
|
)
|
|
.pipe(
|
|
app.plugins.if(
|
|
app.isBuild,
|
|
webpcss(
|
|
{
|
|
webpClass: ".webp",
|
|
noWebpClass: ".no-webp"
|
|
}
|
|
)
|
|
)
|
|
)
|
|
// Раскомментировать если нужен не сжатый дубль файла стилей
|
|
// .pipe(app.gulp.dest(app.path.build.css))
|
|
.pipe(cleanCss())
|
|
.pipe(rename({
|
|
extname: ".min.css"
|
|
}))
|
|
.pipe(app.gulp.dest(app.path.build.css))
|
|
.pipe(app.plugins.browsersync.stream());
|
|
}
|
|
|