Created
April 14, 2014 06:24
-
-
Save boycgit/10621087 to your computer and use it in GitHub Desktop.
a gulp config file template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| ** inspired by markgdyr, http://markgoodyear.com/2014/01/getting-started-with-gulp/ | |
| * date:2014年4月14日 | |
| * creator:玄农 | |
| * mail:bocheng.zbc@alibaba-inc.com | |
| **/ | |
| // Load the plugins | |
| var gulp = require("gulp"), | |
| less = require("gulp-less"), | |
| path = require('path'), | |
| autoprefixer = require('gulp-autoprefixer'), | |
| minifycss = require('gulp-minify-css'), | |
| coffee = require('gulp-coffee'), | |
| jshint = require('gulp-jshint'), | |
| stylish = require('jshint-stylish'), | |
| uglify = require('gulp-uglify'), | |
| imagemin = require('gulp-imagemin'), | |
| rename = require('gulp-rename'), | |
| clean = require('gulp-clean'), | |
| concat = require('gulp-concat'), | |
| notify = require('gulp-notify'), | |
| cache = require('gulp-cache'), | |
| livereload = require('gulp-livereload'), | |
| lr = require('tiny-lr'), | |
| server = lr(); | |
| // Compile the less files,Autoprefix and minify | |
| gulp.task('styles', function () { | |
| return gulp.src('src/less/**/*.less') | |
| .pipe(less({ | |
| paths: [ path.join(__dirname, 'less', 'includes') ] | |
| })) | |
| .pipe(autoprefixer("> 1%", "last 2 version")) | |
| .pipe(gulp.dest('dist/assets/css')) | |
| .pipe(rename({suffix: '.min'})) | |
| .pipe(minifycss()) | |
| .pipe(gulp.dest('dist/assets/css')) | |
| .pipe(livereload(server)) | |
| .pipe(notify({ message: 'Styles task complete' })); | |
| }); | |
| //Compile CoffeeScipt | |
| gulp.task('coffee', function() { | |
| return gulp.src('src/scripts/**/*.coffee') | |
| .pipe(coffee({bare: false,sourceMap: true}).on('error', function(err) { | |
| notify({ message: 'ERROR:coffee compile' }) | |
| })) | |
| .pipe(gulp.dest('src/scripts')); | |
| }); | |
| // JSHint, concat, and minify JavaScript | |
| gulp.task('scripts', ['coffee'],function() { | |
| return gulp.src('src/scripts/**/*.js') | |
| .pipe(jshint('.jshintrc')) | |
| .pipe(jshint.reporter(stylish)) | |
| .pipe(concat('main.js')) | |
| .pipe(gulp.dest('dist/assets/js')) | |
| .pipe(rename({suffix: '.min'})) | |
| .pipe(uglify()) | |
| .pipe(gulp.dest('dist/assets/js')) | |
| .pipe(livereload(server)) | |
| .pipe(notify({ message: 'Scripts task complete' })); | |
| }); | |
| // Compress Images,cached | |
| gulp.task('images', function() { | |
| return gulp.src('src/images/**/*') | |
| .pipe(cache(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true }))) | |
| .pipe(gulp.dest('dist/assets/img')) | |
| .pipe(livereload(server)) | |
| .pipe(notify({ message: 'Images task complete' })); | |
| }); | |
| // Clean Up! | |
| gulp.task('clean', function() { | |
| return gulp.src(['dist/assets/css', 'dist/assets/js', 'dist/assets/img'], {read: false}) | |
| .pipe(clean()); | |
| }); | |
| // The default task | |
| gulp.task('default', ['clean'], function() { | |
| gulp.start('styles', 'scripts', 'images'); | |
| }); | |
| // Watch and livereload | |
| gulp.task('watch', function() { | |
| // Listen on port 35729 | |
| server.listen(35729, function (err) { | |
| if (err) { | |
| return console.log(err) | |
| }}); | |
| // Watch .lesss files | |
| gulp.watch('src/styles/**/*.scss', ['styles']); | |
| // Watch .js files | |
| gulp.watch('src/scripts/**/*.coffee', ['scripts']); | |
| // Watch image files | |
| gulp.watch('src/images/**/*', ['images']); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment