Files
md-cv-maker/gulpfile.js
2018-10-17 12:58:54 +01:00

94 lines
2.5 KiB
JavaScript

var gulp = require('gulp');
var gutil = require ('gulp-util');
var del = require('del');
var jade = require('gulp-jade');
var coffee = require('gulp-coffee');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var sass = require('gulp-sass');
var copy = require('gulp-copy');
var cleanCSS= require('gulp-clean-css');
// Compile Jade views into HTML
gulp.task('views', function() {
locals = require('./src/locals.json');
gulp.src('./src/views/*.jade')
.pipe(jade({locals: locals}))
.pipe(gulp.dest('./production/'))
});
// Compile CoffeeScript into JS, concat and minify
gulp.task('coffee', function() {
gulp.src('./src/scripts/**/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(concat('scripts.js'))
.pipe(uglify())
.pipe(gulp.dest('./production/js'));
});
// Compile SASS into CSS, concat and minify
gulp.task('sass', function () {
return gulp.src('./src/styles/basic.sass')
.pipe(sass().on('error', gutil.log))
.pipe(concat('styles.css'))
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(gulp.dest('./production/css'));
});
// Copy all static assets to production
gulp.task('assets', function () {
return gulp.src('./src/assets/**/*')
.pipe(gulp.dest('./production/assets'));
});
// Watch source for changes, and run appropriate task
gulp.task('watch', function() {
gulp.watch('src/views/**/*.jade', ['views'] );
gulp.watch('src/scripts/**/*.coffee', ['coffee'] );
gulp.watch('src/styles/**/*.sass', ['sass'] );
gulp.watch('src/assets/**/*', ['assets'] );
gulp.watch('src/locals.json', ['build']);
});
// Run tests
gulp.task('test', function(){
gutil.log(gutil.colors.yellow(
'No tests have been configured in the gulpfile yet.'
));
});
// Copy lib files
gulp.task('lib', function(){
listOfLibraries = ['node_modules/materialize-css/dist/css/materialize.min.css']
return gulp
.src(listOfLibraries)
.pipe(copy('production/lib'))
});
// Delete production files
gulp.task('clean', function () {
return del([ 'production' ]);
});
// Build complete project
gulp.task('build', ['clean'], function(){
gulp.start('views', 'coffee', 'sass', 'assets', 'lib');
gutil.beep(); // Delete this line if you don't like the sound effects!
});
// Default task - build the project then run tests
gulp.task('default', ['build'], function(){
gulp.start('test');
});