Use coffeescript again for Gulp

This commit is contained in:
Oliver Davies 2016-05-28 17:41:41 +01:00
parent 7feff15497
commit 1000b6d78f
16 changed files with 79 additions and 104 deletions

1
gulp/build.coffee Normal file
View file

@ -0,0 +1 @@
gulp.task 'build', ['clean', 'styles', 'scripts', 'fonts']

View file

@ -1 +0,0 @@
gulp.task('build', ['clean', 'styles', 'scripts', 'fonts']);

7
gulp/clean.coffee Normal file
View file

@ -0,0 +1,7 @@
del = require 'del'
gulp.task 'clean', ->
del.sync config.fonts.outputDir
del.sync config.js.outputDir
del.sync config.sass.outputDir
del.sync 'output_*/assets/{css,fonts,js}'

View file

@ -1,8 +0,0 @@
var del = require('del');
gulp.task('clean', function () {
del.sync(config.fonts.outputDir);
del.sync(config.js.outputDir);
del.sync(config.sass.outputDir);
del.sync('output_*/assets/{css,fonts,js}');
});

1
gulp/default.coffee Normal file
View file

@ -0,0 +1 @@
gulp.task 'default', ['build', 'watch']

View file

@ -1 +0,0 @@
gulp.task('default', ['build', 'watch']);

2
gulp/fonts.coffee Normal file
View file

@ -0,0 +1,2 @@
gulp.task 'fonts', ->
app.copy [config.bowerDir + '/font-awesome/fonts/*'], config.fonts.outputDir

View file

@ -1,6 +0,0 @@
gulp.task('fonts', function () {
app.copy(
config.bowerDir + '/font-awesome/fonts/*',
config.fonts.outputDir
);
});

View file

@ -1,5 +0,0 @@
gulp.task('minify-prod-html', function () {
gulp.src('output_prod/**/*.html')
.pipe(plugins.htmlmin(config.htmlmin))
.pipe(gulp.dest('output_prod'));
});

View file

@ -1,7 +1,6 @@
gulp.task('scripts', function () { gulp.task 'scripts', ->
app.js([ app.js [
config.bowerDir + '/jquery/dist/jquery.js', config.bowerDir + '/jquery/dist/jquery.js',
config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.js', config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.js',
config.js.pattern config.js.sourceDir + config.js.pattern
], 'site.js'); ], 'site.js'
});

5
gulp/styles.coffee Normal file
View file

@ -0,0 +1,5 @@
gulp.task 'styles', ->
app.sass [
config.bowerDir + '/font-awesome/css/font-awesome.css',
config.sass.sourceDir + config.sass.pattern
], 'site.css'

View file

@ -1,6 +0,0 @@
gulp.task('styles', function () {
app.sass([
config.bowerDir + '/font-awesome/css/font-awesome.css',
config.sass.sourceDir + '/site.sass'
], 'site.css');
});

5
gulp/watch.coffee Normal file
View file

@ -0,0 +1,5 @@
gulp.task 'watch', ->
plugins.refresh.listen()
gulp.watch config.sass.sourceDir + config.sass.pattern, ['styles']
gulp.watch config.js.sourceDir + config.sass.pattern, ['scripts']

View file

@ -1,8 +0,0 @@
gulp.task('watch', function () {
plugins.refresh.listen();
gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']);
gulp.watch(config.sass.sourceDir + config.scss.pattern, ['styles']);
gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']);
});

54
gulpfile.coffee Normal file
View file

@ -0,0 +1,54 @@
'use strict'
global.gulp = require 'gulp'
global.plugins = require('gulp-load-plugins')()
global.config =
autoprefixer:
browsers: 'last 2 versions'
bowerDir: 'vendor/bower',
fonts:
outputDir: 'source/assets/fonts'
htmlmin:
collapseWhitespace: true
js:
sourceDir: 'assets/js',
pattern: '/js/**/*.js',
outputDir: 'source/assets/js'
production: plugins.util.env.production || false
sass:
sourceDir: 'assets/sass',
pattern: '/**/*.sass',
outputDir: 'source/assets/css'
scss:
pattern: '/**/*.scss'
global.app = {}
app.sass = (paths, filename) ->
gulp.src paths
.pipe plugins.plumber()
.pipe plugins.if !config.production, plugins.sourcemaps.init()
.pipe plugins.sassGlob()
.pipe plugins.sass()
.pipe plugins.autoprefixer config.autoprefixer
.pipe plugins.concat filename
.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 = (paths, filename) ->
gulp.src paths
.pipe plugins.plumber()
.pipe plugins.if !config.production, plugins.sourcemaps.init()
.pipe plugins.concat filename
.pipe plugins.if config.production, plugins.uglify()
.pipe plugins.if !config.production, plugins.sourcemaps.write('.')
.pipe gulp.dest config.js.outputDir
app.copy = (source, destination) ->
gulp.src source
.pipe gulp.dest destination
require('require-dir')('./gulp')

View file

@ -1,64 +0,0 @@
'use strict';
global.gulp = require('gulp');
global.plugins = require('gulp-load-plugins')();
global.config = {
autoprefixer: {
browsers: 'last 2 versions'
},
bowerDir: 'vendor/bower',
fonts: {
outputDir: 'source/assets/fonts'
},
htmlmin: {
collapseWhitespace: true
},
js: {
sourceDir: 'assets/js',
pattern: '/js/**/*.js',
outputDir: 'source/assets/js'
},
production: plugins.util.env.production || false,
sass: {
sourceDir: 'assets/sass',
pattern: '/**/*.sass',
outputDir: 'source/assets/css'
},
scss: {
pattern: '/**/*.scss'
}
}
global.app = {};
app.sass = function (paths, filename) {
gulp.src(paths)
.pipe(plugins.plumber())
.pipe(plugins.if(!config.production, plugins.sourcemaps.init()))
.pipe(plugins.sassGlob())
.pipe(plugins.sass())
.pipe(plugins.autoprefixer(config.autoprefixer))
.pipe(plugins.concat(filename))
.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 (paths, filename) {
gulp.src(paths)
.pipe(plugins.plumber())
.pipe(plugins.if(!config.production, plugins.sourcemaps.init()))
.pipe(plugins.concat(filename))
.pipe(plugins.if(config.production, plugins.uglify()))
.pipe(plugins.if(!config.production, plugins.sourcemaps.write('.')))
.pipe(gulp.dest(config.js.outputDir));
};
app.copy = function (source, destination) {
gulp.src(source)
.pipe(gulp.dest(destination));
};
require('require-dir')('./gulp');