From 8d5c0df1438306405f6c2935bd995e572a948ddb Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Fri, 18 Aug 2017 22:23:07 +0100 Subject: [PATCH] Move things back into gulpfile --- gulp-tasks/clean.js | 8 ----- gulp-tasks/fonts.js | 6 ---- gulp-tasks/scripts.js | 11 ------- gulp-tasks/styles.js | 16 ---------- gulp-tasks/watch.js | 8 ----- gulpfile.js | 71 +++++++++++++++++++++++++++++++------------ 6 files changed, 52 insertions(+), 68 deletions(-) delete mode 100644 gulp-tasks/clean.js delete mode 100644 gulp-tasks/fonts.js delete mode 100644 gulp-tasks/scripts.js delete mode 100644 gulp-tasks/styles.js delete mode 100644 gulp-tasks/watch.js diff --git a/gulp-tasks/clean.js b/gulp-tasks/clean.js deleted file mode 100644 index 305354f8..00000000 --- a/gulp-tasks/clean.js +++ /dev/null @@ -1,8 +0,0 @@ -var del = require('del'); - -module.exports = function (gulp, plugins, config) { - return function () { - del.sync('source/assets/{css,fonts,js}'); - del.sync('output_*/assets/{css,fonts,js}'); - } -} diff --git a/gulp-tasks/fonts.js b/gulp-tasks/fonts.js deleted file mode 100644 index 0c4f12a8..00000000 --- a/gulp-tasks/fonts.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function (gulp, plugins, config) { - return function () { - return gulp.src('node_modules/font-awesome/fonts/*') - .pipe(gulp.dest(config.fonts.outputDir)); - } -} diff --git a/gulp-tasks/scripts.js b/gulp-tasks/scripts.js deleted file mode 100644 index ac72da18..00000000 --- a/gulp-tasks/scripts.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = function (gulp, plugins, config, sourceFiles, outputFile) { - return function () { - return gulp.src(sourceFiles) - .pipe(plugins.plumber()) - .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) - .pipe(plugins.concat(outputFile)) - .pipe(plugins.if(config.production, plugins.uglify())) - .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) - .pipe(gulp.dest(config.js.outputDir)); - } -} diff --git a/gulp-tasks/styles.js b/gulp-tasks/styles.js deleted file mode 100644 index 66dae1c0..00000000 --- a/gulp-tasks/styles.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = function (gulp, plugins, config, sourceFiles, outputFile) { - return function () { - return gulp.src(sourceFiles) - .pipe(plugins.plumber()) - .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) - .pipe(plugins.sassGlob()) - .pipe(plugins.sass()) - .pipe(plugins.autoprefixer(config.sass.autoprefixer)) - .pipe(plugins.concat(outputFile)) - .pipe(plugins.if(config.production, plugins.purifycss(config.sass.purifyCss))) - .pipe(plugins.if(config.production, plugins.cleanCss())) - .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) - .pipe(plugins.if(!config.production, plugins.refresh())) - .pipe(gulp.dest(config.sass.outputDir)); - } -} diff --git a/gulp-tasks/watch.js b/gulp-tasks/watch.js deleted file mode 100644 index 16afc37b..00000000 --- a/gulp-tasks/watch.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = function (gulp, plugins, config) { - return function () { - plugins.refresh.listen(); - - gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']); - gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']); - } -} diff --git a/gulpfile.js b/gulpfile.js index 05d763f0..c2583a3c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,38 +3,71 @@ var gulp = require('gulp'); var plugins = require('gulp-load-plugins')(); var config = require('./gulpfile.config')(plugins); +var del = require('del'); -function getTask(task) { - return require('./gulp-tasks/' + task)(gulp, plugins, config); -} +var app = {}; -function addStyle(sourceFiles, outputFile) { - return require('./gulp-tasks/styles')(gulp, plugins, config, sourceFiles, outputFile); -} +app.copy = function (sourceFiles, destination) { + return gulp.src(sourceFiles) + .pipe(gulp.dest(destination)); +}; -function addScript(sourceFiles, outputFile) { - return require('./gulp-tasks/scripts')(gulp, plugins, config, sourceFiles, outputFile); -} +app.sass = function (sourceFiles, outputFile) { + return gulp.src(sourceFiles) + .pipe(plugins.plumber()) + .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) + .pipe(plugins.sassGlob()) + .pipe(plugins.sass()) + .pipe(plugins.autoprefixer(config.sass.autoprefixer)) + .pipe(plugins.concat(outputFile)) + .pipe(plugins.if(config.production, plugins.purifycss(config.sass.purifyCss))) + .pipe(plugins.if(config.production, plugins.cleanCss())) + .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) + .pipe(plugins.if(!config.production, plugins.refresh())) + .pipe(gulp.dest(config.sass.outputDir)); +}; + +app.js = function (sourceFiles, outputFile) { + return gulp.src(sourceFiles) + .pipe(plugins.plumber()) + .pipe(plugins.if(!config.production, plugins.sourcemaps.init())) + .pipe(plugins.concat(outputFile)) + .pipe(plugins.if(config.production, plugins.uglify())) + .pipe(plugins.if(!config.production, plugins.sourcemaps.write('.'))) + .pipe(gulp.dest(config.js.outputDir)); +}; + +gulp.task('clean', function () { + del.sync('source/assets/{css,fonts,js}'); + del.sync('output_*/assets/{css,fonts,js}'); +}); -gulp.task('clean', getTask('clean')); gulp.task('default', ['clean', 'fonts', 'styles', 'scripts']); -gulp.task('fonts', getTask('fonts')); -gulp.task('styles', - addStyle([ +gulp.task('fonts', function () { + return app.copy('node_modules/font-awesome/fonts/*', config.fonts.outputDir); +}); + +gulp.task('styles', function () { + return app.sass([ 'node_modules/font-awesome/css/font-awesome.css', 'node_modules/prismjs/themes/prism-twilight.css', config.sass.sourceDir + '/main.sass' - ], 'site.css') -); + ], 'site.css'); +}); -gulp.task('scripts', - addScript([ +gulp.task('scripts', function () { + return app.js([ 'node_modules/jquery/dist/jquery.js', 'node_modules/prismjs/prism.js', 'node_modules/prismjs/components/prism-{apacheconf,bsash,css,diff,ini,json,nginx,php,sass,scss,sql,less,twig,xml,yaml}.js', config.js.sourceDir + '/**/*.js' ], 'site.js') -); +}); -gulp.task('watch', ['default'], getTask('watch')); +gulp.task('watch', ['default'], function () { + plugins.refresh.listen(); + + gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']); + gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']); +});