UNPKG

timpla

Version:

An optimal website development experience for [server-side] web frameworks.

48 lines 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var autoprefixer = require("autoprefixer"); var browserSync = require("browser-sync"); var cssnano = require("cssnano"); var gulp = require("gulp"); var gulpif = require("gulp-if"); var postcss = require("gulp-postcss"); var sass = require("gulp-sass"); var sourcemaps = require("gulp-sourcemaps"); var internal_1 = require("../internal"); exports.stylesheets = function (_a) { var stylesheetsOptions = _a.stylesheets; return function (cb) { if (stylesheetsOptions === false) { cb(); return; } var paths = { dest: internal_1.projectDestPath(stylesheetsOptions.dest), src: internal_1.projectSrcPath(stylesheetsOptions.src, '**/*.{' + stylesheetsOptions.extensions + '}'), }; if (stylesheetsOptions.sassOptions.includePaths) { stylesheetsOptions.sassOptions.includePaths = stylesheetsOptions.sassOptions.includePaths.map(function (includePath) { return internal_1.projectPath(includePath); }); } var currentEnv = internal_1.TIMPLA_PROCESS.isProduction ? 'production' : 'development'; var useSourceMap = stylesheetsOptions[currentEnv] && stylesheetsOptions[currentEnv].sourceMap; var postcssOptions = stylesheetsOptions.postcssOptions; var autoprefixerOptions = stylesheetsOptions.autoprefixerOptions; var cssnanoOptions = stylesheetsOptions.cssnanoOptions; var postcssPlugins = [ autoprefixer(autoprefixerOptions), internal_1.TIMPLA_PROCESS.isProduction && cssnano(cssnanoOptions), ].filter(Boolean); return gulp .src(paths.src, stylesheetsOptions.srcOptions) .pipe(gulpif(useSourceMap, sourcemaps.init())) .pipe(sass(stylesheetsOptions.sassOptions)) .on('error', internal_1.handleErrors) .pipe(postcss(postcssPlugins, postcssOptions)) .pipe(gulpif(useSourceMap, sourcemaps.write())) .pipe(gulp.dest(paths.dest, stylesheetsOptions.destOptions)) .pipe(browserSync.stream()); }; }; //# sourceMappingURL=stylesheets.js.map