UNPKG

generator-teka

Version:

A Yeoman Generator to create a brand new teka theme.

159 lines (146 loc) 4.35 kB
'use strict' var gulp = require('gulp'), uglify = require('gulp-uglify'), minify = require('gulp-minify-css'), concat = require('gulp-concat'), sass = require('gulp-sass'), browserSync = require('browser-sync').create(), plumber = require('gulp-plumber'), spritesmith = require('gulp.spritesmith'), neat = require('node-neat').includePaths; ////////////////////////////// // PATHS ////////////////////////////// var path = { sassWatch: [ 'assets/scss/*.scss', 'assets/scss/**/*.scss' ], sass_src_S: 'assets/scss/style.scss', sass_src_P: 'assets/scss/print.scss', sass_dest: 'dist/css', js_lint_src: [ 'dist/js/*.js' ], js_src : [ 'assets/js/*.js' ], js_dest : 'dist/js/' }; ////////////////////////////// // BrowserSync ////////////////////////////// gulp.task('browser-sync', ['sass'], function() { browserSync.init({ proxy: "<%= projectHost %>", notify: false }); }); gulp.task('bs-reload', function (){ browserSync.reload(); }); ////////////////////////////// // JS Tasks ////////////////////////////// gulp.task('js', function () { gulp.src(path.js_src) .on('error',console.log.bind(console)) .pipe(uglify()) .on('error',console.log.bind(console)) .pipe(concat('main.js')) .on('error',console.log.bind(console)) .pipe(gulp.dest('dist/js')) .on('error',console.log.bind(console)); }); ////////////////////////////// // SASS Tasks ////////////////////////////// gulp.task('sass', function(){ gulp.src(path.sass_src_S) .pipe(sass({ includePaths: ['styles'].concat(neat) })) .on('error',console.log.bind(console)) .pipe(minify()) .on('error',console.log.bind(console)) .pipe(concat('style.css')) .on('error',console.log.bind(console)) .pipe(gulp.dest('dist/css')) .pipe(browserSync.reload({stream: true})) .on('error',console.log.bind(console)); gulp.src(path.sass_src_P) .pipe(sass({ includePaths: ['styles'].concat(neat) })) .on('error',console.log.bind(console)) .pipe(minify()) .on('error',console.log.bind(console)) .pipe(concat('print.css')) .on('error',console.log.bind(console)) .pipe(gulp.dest('dist/css')) .pipe(browserSync.reload({stream: true})) .on('error',console.log.bind(console)); }); ////////////////////////////// // SPRITE Tasks ////////////////////////////// gulp.task('sprite', function () { var spriteData = gulp.src('assets/img/sprite/*.png') .pipe(spritesmith({ imgName: 'sprite.png', cssName: '_sprite.scss', imgPath: '../img/sprite.png' })).on('error',console.log.bind(console)); spriteData.img.pipe(gulp.dest('dist/img/')).on('error',console.log.bind(console)); spriteData.css.pipe(gulp.dest('assets/scss/config/')).on('error',console.log.bind(console)); }); ////////////////////////////// // Images Task ////////////////////////////// var allowedFiles = [ 'assets/img/*.png', 'assets/img/*.jpg', 'assets/img/*.jpeg', 'assets/img/*.gif', 'assets/img/*.svg' ]; gulp.task('images', function () { var spriteData = gulp.src(allowedFiles) .pipe(gulp.dest('dist/img/')).on('error',console.log.bind(console)); }); ////////////////////////////// // Font Task ////////////////////////////// gulp.task('fonts', function () { gulp.src(['assets/fonts/*']).pipe(gulp.dest('dist/fonts')) }); ////////////////////////////// // Watch Tasks ////////////////////////////// gulp.task('watch', ['browser-sync'], function () { gulp.watch(path.js_src, ['js']).on('error',console.log.bind(console)); gulp.watch(path.sassWatch, ['sass']).on('error',console.log.bind(console)); gulp.watch('assets/img/sprite/*.*', ['sprite']).on('error',console.log.bind(console)); gulp.watch('dist/js/*.*').on('change', browserSync.reload); }); ////////////////////////////// //Default Tasks ////////////////////////////// gulp.task('default', [ 'sass', 'js', 'watch', 'sprite', 'images', 'fonts' ]); ////////////////////////////// /// BUILD TASK FOR JENKINS ////////////////////////////// gulp.task('build', [ 'sass', 'js', 'sprite', 'images', 'fonts' ]);