From 5e8b52c33834f0e0c1a338956a4bab7c4111bc48 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Fri, 27 May 2016 23:25:38 +0100 Subject: [PATCH] Split Gulp tasks into their own files --- gulp/build.js | 1 + gulp/clean.js | 6 +++++ gulp/default.coffee | 1 + gulp/default.js | 1 + gulp/fonts.js | 6 +++++ gulp/minify-prod-html.js | 5 ++++ gulp/scripts.js | 10 +++++++ gulp/styles.js | 6 +++++ gulp/watch.js | 6 +++++ gulpfile.js | 56 +++++----------------------------------- package.json | 4 +-- 11 files changed, 51 insertions(+), 51 deletions(-) create mode 100644 gulp/build.js create mode 100644 gulp/clean.js create mode 100644 gulp/default.coffee create mode 100644 gulp/default.js create mode 100644 gulp/fonts.js create mode 100644 gulp/minify-prod-html.js create mode 100644 gulp/scripts.js create mode 100644 gulp/styles.js create mode 100644 gulp/watch.js diff --git a/gulp/build.js b/gulp/build.js new file mode 100644 index 000000000..620fb913e --- /dev/null +++ b/gulp/build.js @@ -0,0 +1 @@ +gulp.task('build', ['clean', 'styles', 'scripts', 'fonts']); diff --git a/gulp/clean.js b/gulp/clean.js new file mode 100644 index 000000000..ea3bd957a --- /dev/null +++ b/gulp/clean.js @@ -0,0 +1,6 @@ +var del = require('del'); + +gulp.task('clean', function () { + del.sync(config.outputDir + '/{css,js}'); + del.sync('output_*/assets/{css,js}'); +}); diff --git a/gulp/default.coffee b/gulp/default.coffee new file mode 100644 index 000000000..023af9725 --- /dev/null +++ b/gulp/default.coffee @@ -0,0 +1 @@ +global.gulp.task 'default', ['clean', 'build'] diff --git a/gulp/default.js b/gulp/default.js new file mode 100644 index 000000000..2838ee7bd --- /dev/null +++ b/gulp/default.js @@ -0,0 +1 @@ +gulp.task('default', ['build', 'watch']); diff --git a/gulp/fonts.js b/gulp/fonts.js new file mode 100644 index 000000000..b5db2bc86 --- /dev/null +++ b/gulp/fonts.js @@ -0,0 +1,6 @@ +gulp.task('fonts', function () { + app.copy( + config.bowerDir + '/font-awesome/fonts/*', + config.outputDir + '/fonts' + ); +}); diff --git a/gulp/minify-prod-html.js b/gulp/minify-prod-html.js new file mode 100644 index 000000000..31d741a2a --- /dev/null +++ b/gulp/minify-prod-html.js @@ -0,0 +1,5 @@ +gulp.task('minify-prod-html', function () { + gulp.src('output_prod/**/*.html') + .pipe(plugins.htmlmin({ collapseWhitespace: true })) + .pipe(gulp.dest('output_prod')); +}); diff --git a/gulp/scripts.js b/gulp/scripts.js new file mode 100644 index 000000000..d22ddb9cb --- /dev/null +++ b/gulp/scripts.js @@ -0,0 +1,10 @@ +gulp.task('scripts', function () { + app.js( + [ + config.bowerDir + '/jquery/dist/jquery.js', + config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.js', + config.assetsDir + '/' + config.jsPattern + ], + 'site.js' + ); +}); diff --git a/gulp/styles.js b/gulp/styles.js new file mode 100644 index 000000000..43f587b1a --- /dev/null +++ b/gulp/styles.js @@ -0,0 +1,6 @@ +gulp.task('styles', function () { + app.css([ + config.bowerDir + '/font-awesome/css/font-awesome.css', + config.assetsDir + '/sass/site.sass' + ], 'site.css'); +}); diff --git a/gulp/watch.js b/gulp/watch.js new file mode 100644 index 000000000..73a7fb35a --- /dev/null +++ b/gulp/watch.js @@ -0,0 +1,6 @@ +gulp.task('watch', function () { + plugins.refresh.listen(); + + gulp.watch(config.assetsDir + '/' + config.sassPattern, ['styles']); + gulp.watch(config.assetsDir + '/' + config.jsPattern, ['scripts']); +}); diff --git a/gulpfile.js b/gulpfile.js index 36559755e..8b02cb10d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,19 +1,18 @@ 'use strict'; -var gulp = require('gulp'), - plugins = require('gulp-load-plugins')(), - del = require('del'); +global.gulp = require('gulp'); +global.plugins = require('gulp-load-plugins')(); -var config = { +global.config = { assetsDir: 'assets', bowerDir: 'vendor/bower', jsPattern: 'js/**/*.js', outputDir: 'source/assets', production: plugins.util.env.production || false, - sassPattern: 'sass/**/*.sass' -}; + sassPattern: 'sass/**/*.sass', +} -var app = {}; +global.app = {}; app.css = function (paths, filename) { gulp.src(paths) @@ -45,45 +44,4 @@ app.copy = function (source, destination) { .pipe(gulp.dest(destination)); }; -gulp.task('styles', function () { - app.css([ - config.bowerDir + '/font-awesome/css/font-awesome.css', - config.assetsDir + '/sass/site.sass' - ], 'site.css'); -}); - -gulp.task('scripts', function () { - app.js([ - config.bowerDir + '/jquery/dist/jquery.js', - config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.js', - config.assetsDir + '/' + config.jsPattern - ], 'site.js'); -}); - -gulp.task('fonts', function () { - app.copy(config.bowerDir + '/font-awesome/fonts/*', config.outputDir + '/fonts'); -}); - -gulp.task('clean', function () { - del.sync(config.outputDir + '/css'); - del.sync(config.outputDir + '/js'); - del.sync('output_*/assets/css'); - del.sync('output_*/assets/js'); -}); - -gulp.task('build', ['clean', 'styles', 'scripts', 'fonts']); - -gulp.task('watch', function () { - plugins.refresh.listen(); - - gulp.watch('source/assets/' + config.sassPattern, ['styles']); - gulp.watch('source/assets/' + config.jsPattern, ['scripts']); -}); - -gulp.task('default', ['build', 'watch']); - -gulp.task('minify-prod-html', function () { - gulp.src('output_prod/**/*.html') - .pipe(plugins.htmlmin({ collapseWhitespace: true })) - .pipe(gulp.dest('output_prod')); -}); +require('require-dir')('./gulp'); diff --git a/package.json b/package.json index 9e3972cbf..9b3c55a84 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "devDependencies": { "bower": "^1.7.7", - "coffee-script": "^1.10.0", "del": "^2.2.0", "gulp": "^3.9.0", "gulp-autoprefixer": "^3.1.0", @@ -21,6 +20,7 @@ "gulp-sass-glob": "^1.0.5", "gulp-sourcemaps": "^1.6.0", "gulp-uglify": "^1.5.3", - "gulp-util": "^3.0.7" + "gulp-util": "^3.0.7", + "require-dir": "^0.3.0" } }