tasks = exports.map(function (settings) { return gulp.src(settings.glob) .pipe(sharp( extend(defaults, { resize: [settings.size], quality: settings.quality }) )) .pipe(rename(function (path) { path.basename = (path.basename.replace('s', '') + settings.suffix) })) .pipe(gulp.dest(destinationFolder)) })
gulp.task('favicons', function(config) { config = JSON.parse(config); return es.merge([ gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [57], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-57x57.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [114], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-114x114.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [72], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-72x72.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [144], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-144x144.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [60], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-60x60.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [120], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-120x120.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [76], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-76x76.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [152], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('apple-touch-icon-152x152.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [196], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('favicon-196x196.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [160], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('favicon-160x160.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [96], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('favicon-96x96.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [16], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('favicon-16x16.png')) .pipe(gulp.dest(config.staticContent + '/icons')), gulp.src('logo.svg', {read: false}) .pipe(newer(config.staticContent + '/icons')) .pipe(gulpSharp({ resize: [32], max: true, output: 'png', compressionLevel: 9 })) .pipe(rename('favicon-32x32.png')) .pipe(gulp.dest(config.staticContent + '/icons')) ]); });