| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 'use strict';
- var fs = require('fs');
- var gulp = require('gulp');
- var Parker = require('parker/lib/Parker');
- var prettyJSON = require('prettyjson');
- var sass = require('gulp-sass');
- var plumber = require('gulp-plumber');
- var sourcemaps = require('gulp-sourcemaps');
- var sassLint = require('gulp-sass-lint');
- var postcss = require('gulp-postcss');
- var autoprefixer = require('autoprefixer');
- var CONFIG = require('../config.js');
- // Compiles Sass files into CSS
- gulp.task('sass', gulp.series('sass:foundation', 'sass:docs'));
- // Prepare dependencies
- gulp.task('sass:deps', function() {
- return gulp.src(CONFIG.SASS_DEPS_FILES)
- .pipe(gulp.dest('_vendor'));
- });
- // Compiles Foundation Sass
- gulp.task('sass:foundation', gulp.series('sass:deps', function() {
- return gulp.src(['assets/*'])
- .pipe(sourcemaps.init())
- .pipe(plumber())
- .pipe(sass().on('error', sass.logError))
- .pipe(postcss([autoprefixer()])) // uses ".browserslistrc"
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('_build/assets/css'));
- }));
- // Compiles docs Sass (includes Foundation code also)
- gulp.task('sass:docs', gulp.series('sass:deps', function() {
- return gulp.src('docs/assets/scss/docs.scss')
- .pipe(sourcemaps.init())
- .pipe(sass({
- includePaths: CONFIG.SASS_DOC_PATHS
- }).on('error', sass.logError))
- .pipe(postcss([autoprefixer()])) // uses ".browserslistrc"
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('_build/assets/css'));
- }));
- // Audits CSS filesize, selector count, specificity, etc.
- gulp.task('sass:audit', gulp.series('sass:foundation', function(done) {
- fs.readFile('./_build/assets/css/foundation.css', function(err, data) {
- var parker = new Parker(require('parker/metrics/All'));
- var results = parker.run(data.toString());
- console.log(prettyJSON.render(results));
- done();
- });
- }));
|