Gulp config
{
"name": "project",
"version": "1.0.0",
"devDependencies": {
"gulp": "^3.8.10",
"gulp-concat": "^2.4.3",
"gulp-imagemin": "^2.1.0",
"gulp-less": "^2.0.1",
"gulp-uglify": "^1.1.0",
"gulp-util": "^3.0.2",
"less-plugin-clean-css": "^1.4.0"
}
}
# npm install --save-dev modulename
# --save-dev only for dev
# --save for production
var gulp = require('gulp');
var less = require('gulp-less');
var path = require('path');
var LessPluginCleanCSS = require('less-plugin-clean-css'),
cleancss = new LessPluginCleanCSS({advanced: true});
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var imagemin = require('gulp-imagemin');
gulp.task('default', function() {
// place code for your default task here
});
// css
gulp.task('css', function() {
gulp.src('./less/main.less')
.pipe(less({
paths: [ path.join(__dirname, 'less', 'includes') ],
plugins: [cleancss]
}))
.pipe(gulp.dest('./css'))
});
// js
gulp.task('scripts', function() {
gulp.src(['./bower_components/jquery/dist/jquery.js',
'./bower_components/bootstrap/dist/js/bootstrap.js',
'./js/owl.carousel.js', 'js/custom.js'
])
.pipe(concat('frontend.js', {newLine: ';'}))
.pipe(uglify({ mangle: false }))
.pipe(gulp.dest('./js/'))
});
// images
gulp.task('images', function() {
return gulp.src('./src/*')
.pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))
.pipe(gulp.dest('./images/'))
});
// watcher
gulp.task('watch', function() {
gulp.watch('less/*.less', ['css']);
gulp.watch([
'bower_components/jquery/dist/jquery.js',
'bower_components/bootstrap/dist/js/bootstrap.js',
'js/owl.carousel.js',
'js/custom.js'
], ['scripts']
);
gulp.watch('src/*', ['images']);
});