timpla
Version:
An optimal website development experience for [server-side] web frameworks.
48 lines • 2.23 kB
JavaScript
;
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