turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
34 lines (33 loc) • 1.07 kB
JavaScript
import gulpSass from "gulp-sass";
import * as gulpSourceMaps from "gulp-sourcemaps";
import { Minimatch } from "minimatch";
import { asString, join } from "../utils/matcher";
/**
* Return a list of sources, prefixed by "from"
*/
export function getSources({ files, from }) {
return files.map((val) => asString(join(from, new Minimatch(val))));
}
export function buildSass(gulp, options) {
return gulp
.src(getSources(options), { base: options.from })
.pipe(gulpSourceMaps.init())
.pipe(gulpSass().on("error", gulpSass.logError))
.pipe(gulpSourceMaps.write())
.pipe(gulp.dest(options.to));
}
/**
* Generate a task to build pug files
*/
export function generateTask(gulp, options) {
const task = function () {
return buildSass(gulp, options);
};
task.displayName = "_build:sass";
return task;
}
export function watch(gulp, options) {
const buildTask = generateTask(gulp, options);
const sources = getSources(options);
return gulp.watch(sources, { cwd: options.from }, buildTask);
}