file-icon-vectors/gulpfile.js

70 lines
1.9 KiB
JavaScript

/**
* Gulpfile for File Icon Vectors
*
* @author Daniel M. Hendricks
* @license MIT
* {@link https://github.com/dmhendricks/file-icon-vectors GitHub repository}
*/
var pkg = require( './package.json' );
var gulp = require( 'gulp' );
var rename = require( 'gulp-rename' );
var minifycss = require( 'gulp-uglifycss' );
var imagemin = require( 'gulp-imagemin' );
var sass = require( 'gulp-sass' );
var autoprefixer = require( 'gulp-autoprefixer' );
var cache = require( 'gulp-cache' );
var lineec = require( 'gulp-line-ending-corrector' );
var filter = require( 'gulp-filter' );
var notify = require( 'gulp-notify' );
const AUTOPREFIXER_BROWSERS = [ 'last 2 version', '> 1%', 'ie >= 9', 'ie_mob >= 10', 'ff >= 30', 'chrome >= 34', 'safari >= 7', 'opera >= 23', 'ios >= 7', 'android >= 4', 'bb >= 10' ];
gulp.task( 'styles', function() {
return gulp
.src( [ './src/scss/*.scss', '!./src/scss/_*.scss' ] )
.pipe(
sass({
errLogToConsole: true,
outputStyle: 'expanded',
precision: 10
})
)
.on( 'error', sass.logError )
.pipe( autoprefixer( AUTOPREFIXER_BROWSERS ) )
.pipe( lineec() )
.pipe( gulp.dest( './dist' ) )
.pipe( filter( '**/*.css' ) )
.pipe( rename( { suffix: '.min' } ) )
.pipe( minifycss( { maxLineLen: 10 } ) )
.pipe( lineec() )
.pipe( gulp.dest( './dist' ) )
.pipe( notify({ message: 'TASK: "styles" completed', onLast: true }) );
});
gulp.task( 'svgmin', function() {
return gulp
.src( './dist/icons/**/*.svg' )
.pipe(
cache(
imagemin([
imagemin.svgo({
plugins: [ { removeViewBox: true }, { cleanupIDs: true } ]
})
])
)
)
.pipe( gulp.dest( './dist/icons' ) )
.pipe( notify({ message: 'TASK: "svgmin" completed.', onLast: true }) );
});
gulp.task(
'default',
gulp.parallel(
'styles',
function watchFiles() {
gulp.watch( './assets/css/**/*.scss', gulp.parallel( 'styles' ) );
}
)
);