UNPKG

simplr-gulp

Version:

Fully functional gulpfile.js implementation. Tailored for Single Page Application. Written in TypeScript.

53 lines (52 loc) 2.09 kB
Object.defineProperty(exports, "__esModule", { value: true }); const builder_base_1 = require("../builder-base"); const paths_1 = require("../../paths/paths"); const gulp = require("gulp"); const cleanCSS = require("gulp-clean-css"); const sass = require("gulp-sass"); const autoprefixer = require("gulp-autoprefixer"); const sourcemaps = require("gulp-sourcemaps"); const logger_1 = require("../../utils/logger"); const cache = require("gulp-cached"); class StylesBuilder extends builder_base_1.BuilderBase { build(production, builder, done) { let sassResults = gulp .src(paths_1.Paths.Builders.AllFiles.InSourceApp(".scss")) .pipe(cache("styles")); if (!production) { sassResults = sassResults.pipe(sourcemaps.init()); } sassResults = sassResults .pipe(sass() .on('error', (error) => { this.errorHandler(error); done(); })); sassResults = sassResults.pipe(autoprefixer()); if (!production) { sassResults = sassResults.pipe(sourcemaps.write()); } else { sassResults = sassResults.pipe(cleanCSS({ processImportFrom: ['local'], rebase: false })); } sassResults.pipe(gulp.dest(paths_1.Paths.Directories.BuildApp)) .on('end', done); } errorHandler(error) { if (error != null) { if (error.relativePath != null && error.line != null && error.column != null && error.messageOriginal != null) { logger_1.LoggerInstance.withType("SCSS").error(`${error.relativePath}[${error.line}, ${error.column}]: ${error.messageOriginal}`); } else { logger_1.LoggerInstance.error("Error in 'gulp-sass' plugin: \n", error); } } else { logger_1.LoggerInstance.error(`Unknown error in 'gulp-sass' plugin.`); } } initBuilder(production) { return undefined; } } exports.StylesBuilder = StylesBuilder;