66 lines
1.6 KiB
JavaScript
66 lines
1.6 KiB
JavaScript
// Requires
|
|
const gulp = require("gulp");
|
|
const prefix = require("gulp-autoprefixer");
|
|
const sass = require("gulp-sass");
|
|
const browserSync = require("browser-sync");
|
|
|
|
/* ----------------------------------------- */
|
|
/* Compile Sass
|
|
/* ----------------------------------------- */
|
|
|
|
// Small error handler helper function.
|
|
function handleError(err) {
|
|
console.log(err.toString());
|
|
this.emit("end");
|
|
}
|
|
|
|
const SYSTEM_SCSS = ["system/styles/conf/**/*.scss"];
|
|
function compileScss() {
|
|
// Configure options for sass output. For example, 'expanded' or 'nested'
|
|
let options = {
|
|
outputStyle: "compressed",
|
|
};
|
|
return gulp
|
|
.src(SYSTEM_SCSS)
|
|
.pipe(sass(options).on("error", handleError))
|
|
.pipe(
|
|
prefix({
|
|
cascade: false,
|
|
})
|
|
)
|
|
.pipe(gulp.dest("system/styles"))
|
|
.pipe(
|
|
browserSync.reload({
|
|
stream: true,
|
|
})
|
|
);
|
|
}
|
|
const css = gulp.series(compileScss);
|
|
|
|
/* ----------------------------------------- */
|
|
/* Watch Updates
|
|
/* ----------------------------------------- */
|
|
|
|
function watchUpdates() {
|
|
gulp.watch("system/styles/scss/**/*.scss", css);
|
|
}
|
|
|
|
/* ----------------------------------------- */
|
|
/* BrowserSync
|
|
/* ----------------------------------------- */
|
|
|
|
function bSync() {
|
|
browserSync({
|
|
server: {
|
|
baseDir: "system/styles",
|
|
},
|
|
});
|
|
}
|
|
|
|
/* ----------------------------------------- */
|
|
/* Export Tasks
|
|
/* ----------------------------------------- */
|
|
|
|
exports.default = gulp.series(compileScss, watchUpdates, bSync);
|
|
exports.css = css;
|