Skip to content

Instantly share code, notes, and snippets.

@HereChen
Last active October 26, 2015 01:56
Show Gist options
  • Save HereChen/9a2850403092a0f5934a to your computer and use it in GitHub Desktop.
Save HereChen/9a2850403092a0f5934a to your computer and use it in GitHub Desktop.
gulp demo - less compile and compressed
var gulp = require('gulp');
/* plugins:
** npm install --save-dev
** gulp-uglify gulp-rename gulp-concat gulp-sass
** gulp-minify-css gulp-autoprefixer
*/
var uglify = require('gulp-uglify'), // js compress
rename = require('gulp-rename'), // file rename
concat = require('gulp-concat'), // file combine
sass = require('gulp-sass'),
minifycss = require('gulp-minify-css'),
autoprefix = require('gulp-autoprefixer');
/* path
** source, build
*/
var src = {
js: 'assets/src/js/*.js',
sass: 'assets/src/sass/main.scss',
sassdir: 'assets/src/sass/*.scss',
mainjs: [
'assets/src/js/anchor.js',
'assets/src/js/uptotop.js',
'assets/src/js/jquery-ui-widget.js',
'assets/src/js/jquery.tocify.js',
'assets/src/js/app.js'
]
}
var dist = {
js: 'assets/dist/js/',
css: 'assets/dist/css/'
}
/* minifyjs
** https://github.com/gruntjs/grunt-contrib-uglify#preservecomments
** {preserveComments : 'some'} reserve lisence
*/
gulp.task('minifyjs', function () {
gulp.src(src.js)
.pipe(rename({suffix: '.min'}))
.pipe(uglify({preserveComments : 'some'}))
.pipe(gulp.dest(dist.js));
});
/* combinejs:
** minify js
*/
gulp.task('combinejs', function () {
gulp.src(src.mainjs)
.pipe(uglify({preserveComments : 'some'}))
.pipe(concat('main.min.js'))
.pipe(gulp.dest(dist.js));
});
/* sass:
** compile sass
*/
gulp.task('sass', function() {
gulp.src(src.sass)
.pipe(rename({suffix: '.min'}))
.pipe(sass().on('error', sass.logError))
.pipe(autoprefix())
.pipe(minifycss())
.pipe(gulp.dest(dist.css));
});
/* default */
gulp.task('default', function(){
gulp.start(['combinejs','sass']);
});
/* watch:
** excute task when less file is changed
*/
gulp.task('watch', function() {
gulp.watch(src.js, ['minifyjs','combinejs']);
gulp.watch(src.sassdir, ['sass']);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment