Skip to content

Instantly share code, notes, and snippets.

@genoma
Created February 15, 2016 08:37
Show Gist options
  • Save genoma/e07ab7770e38dc6edbba to your computer and use it in GitHub Desktop.
Save genoma/e07ab7770e38dc6edbba to your computer and use it in GitHub Desktop.
// *****************************************************************
// DEPENDENCIES
import fs from 'fs';
import path from 'path';
import gulp from 'gulp';
let use = taskname => require(`./tasks/gulp.${taskname}`);
let createTask = elem => gulp.task.apply(gulp, elem);
// *****************************************************************
// TASKS
let tasks = [
// FONTS
['fonts-dev', use('copy').from('./src/assets/fonts/**/*').to('./dev/assets/fonts/')],
['fonts-build', use('copy').from('./src/assets/fonts/**/*').to('./dist/assets/fonts/')],
// IMAGES
['images-dev', use('copy').from('./src/assets/images/**/*').to('./dev/assets/images/')],
['images-build', use('copy').from('./src/assets/images/**/*').to('./dist/assets/images/')],
// JADE
['view-dev', use('jade').from('./src/**/*.jade').to('./dev')],
['view-build', use('jade').from('./src/**/*.jade').to('./dist')],
['view-watch', use('watch').advanced().files('./src/**/*.jade').tasks(['view-dev'])],
// SCRIPTS
['script-dev', use('script').set(false).from(['./src/assets/scripts/**/*.js', '!./src/assets/scripts/vendor/**/*']).to('./dev/assets/scripts/')],
['script-build', use('script').from(['./src/assets/scripts/**/*.js', '!./src/assets/scripts/vendor/**/*']).to('./dist/assets/scripts/')],
['script-watch', use('watch').advanced().files(['./src/assets/scripts/**/*.js']).tasks(['script-dev'])],
// VENDOR
['vendor-dev', use('vendor').from('./src/assets/scripts/vendor/**/*').to('./dev/assets/scripts/vendor/')],
['vendor-build', use('vendor').from('./src/assets/scripts/vendor/**/*').to('./dist/assets/scripts/vendor/')],
// SASS MAIN STILES
['style-dev', use('sass').from('./src/assets/styles/main.scss').to('./dev/assets/styles')],
['style-build', use('sass').from('./src/assets/styles/main.scss').to('./dist/assets/styles')],
['style-watch', use('watch').advanced().files('./src/assets/styles/**/*.scss').tasks(['style-dev'])],
// SASS KITCHENSINK
['doc-style-dev', use('sass').from('./src/assets/styles-doc/main.scss').to('./dev/assets/styles-doc')],
['doc-style-build', use('sass').from('./src/assets/styles-doc/main.scss').to('./dist/assets/styles-doc')],
['doc-style-watch', use('watch').advanced().files('./src/assets/styles-doc/**/*.scss').tasks(['doc-style-dev'])],
['dev-compile', ['style-dev', 'doc-style-dev', 'script-dev', 'vendor-dev', 'view-dev']],
['build-compile', ['style-build', 'doc-style-build' ,'script-build', 'vendor-build', 'view-build']],
// BASE SINGLE TASKS
['lint', use('sass-lint').sass('./src/asset/styles/**/*.scss')],
['minify-css', ['lint', 'style-build'], use('minify').css('./dev/assets/styles/main.css', './dist/assets/styles')],
// STYLESTATS
['stylestats', use('stylestats').stats('./dev/assets/styles/main.css', '_stylestats')],
// CLEAN DIRECTORIES
['clean-dev', use('clean').clean('./dev/**/*')],
['clean-build', use('clean').clean('./dist/**/*')],
// *****************************************************************
// GLOBAL TASKS
// DEV
['dev', [
'fonts-dev',
'images-dev',
'dev-compile',
'style-watch',
'doc-style-watch',
'script-watch',
'view-watch'
], use('browsersync').start(['./dev/assets/styles/**/*.css', './dev/assets/styles-doc/**/*.css', './dev/**/*.html', './dev/assets/scripts/**/*.js'], './dev')],
// BUILD DIST
['build', [
'fonts-build',
'images-build',
'build-compile',
'minify-css'
]],
// UTILITY TO START A TASK WITH THE AUTORELOAD ON GULP MODIFICATION
// task: `gulp auto-reload --task taskname`
['auto-reload', use('autoreload').base(['package.json', 'gulpfile.babel.js', './tasks/*.js'])],
// Deafult task is an alias for the DEV task
['default', ['dev']]
].map(createTask);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment