diff options
author | Thomas <tgrif81@tscstudents.net> | 2017-03-20 18:10:50 +0000 |
---|---|---|
committer | Thomas <tgrif81@tscstudents.net> | 2017-03-20 18:10:50 +0000 |
commit | 7f8bdc7ee0ac349a62563954fa6b2bd915e72949 (patch) | |
tree | 648fd8573eba8cc451ce229ca8002c3cf323a361 /gulpfile.js | |
parent | e7ce1aa5593b617d2884c6368aa499c0f4adda3e (diff) |
Upload new file
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..56dd664 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,92 @@ +var gulp = require('gulp'); +var less = require('gulp-less'); +var browserSync = require('browser-sync').create(); +var header = require('gulp-header'); +var cleanCSS = require('gulp-clean-css'); +var rename = require("gulp-rename"); +var uglify = require('gulp-uglify'); +var pkg = require('./package.json'); + +// Set the banner content +var banner = ['/*!\n', + ' * Start Bootstrap - <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n', + ' * Copyright 2013-' + (new Date()).getFullYear(), ' <%= pkg.author %>\n', + ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n', + ' */\n', + '' +].join(''); + +// Compile LESS files from /less into /css +gulp.task('less', function() { + return gulp.src('less/clean-blog.less') + .pipe(less()) + .pipe(header(banner, { pkg: pkg })) + .pipe(gulp.dest('css')) + .pipe(browserSync.reload({ + stream: true + })) +}); + +// Minify compiled CSS +gulp.task('minify-css', ['less'], function() { + return gulp.src('css/clean-blog.css') + .pipe(cleanCSS({ compatibility: 'ie8' })) + .pipe(rename({ suffix: '.min' })) + .pipe(gulp.dest('css')) + .pipe(browserSync.reload({ + stream: true + })) +}); + +// Minify JS +gulp.task('minify-js', function() { + return gulp.src('js/clean-blog.js') + .pipe(uglify()) + .pipe(header(banner, { pkg: pkg })) + .pipe(rename({ suffix: '.min' })) + .pipe(gulp.dest('js')) + .pipe(browserSync.reload({ + stream: true + })) +}); + +// Copy vendor libraries from /node_modules into /vendor +gulp.task('copy', function() { + gulp.src(['node_modules/bootstrap/dist/**/*', '!**/npm.js', '!**/bootstrap-theme.*', '!**/*.map']) + .pipe(gulp.dest('vendor/bootstrap')) + + gulp.src(['node_modules/jquery/dist/jquery.js', 'node_modules/jquery/dist/jquery.min.js']) + .pipe(gulp.dest('vendor/jquery')) + + gulp.src([ + 'node_modules/font-awesome/**', + '!node_modules/font-awesome/**/*.map', + '!node_modules/font-awesome/.npmignore', + '!node_modules/font-awesome/*.txt', + '!node_modules/font-awesome/*.md', + '!node_modules/font-awesome/*.json' + ]) + .pipe(gulp.dest('vendor/font-awesome')) +}) + +// Run everything +gulp.task('default', ['less', 'minify-css', 'minify-js', 'copy']); + +// Configure the browserSync task +gulp.task('browserSync', function() { + browserSync.init({ + server: { + baseDir: '' + }, + }) +}) + +// Dev task with browserSync +gulp.task('dev', ['browserSync', 'less', 'minify-css', 'minify-js'], function() { + gulp.watch('less/*.less', ['less']); + gulp.watch('css/*.css', ['minify-css']); + gulp.watch('js/*.js', ['minify-js']); + // Reloads the browser whenever HTML or JS files change + gulp.watch('*.html', browserSync.reload); + gulp.watch('js/**/*.js', browserSync.reload); +}); |