Skip to content

Instantly share code, notes, and snippets.

@a-am
Created August 19, 2015 16:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save a-am/c29b723103efef9f8a18 to your computer and use it in GitHub Desktop.
Save a-am/c29b723103efef9f8a18 to your computer and use it in GitHub Desktop.
Gulp Start File
/*
* Gulp install plugins
* @package.json
*/
var gulp = require('gulp'),
gulpLoadPlugins = require('gulp-load-plugins'),
$ = gulpLoadPlugins(),
LessPluginAutoPrefix = require('less-plugin-autoprefix'),
autoprefix = new LessPluginAutoPrefix({ browsers: ["last 2 versions"] }),
filter = require('gulp-filter');
/*
* Paths for watch,process & bower
*/
var paths = {
watch: {
scripts: ['assets/js/tm/**/*','assets/js/vendor/**/*','assets/js/src/**/*'],
styles:['assets/less/**/*'],
images: 'assets/img/src/**/*'
},
process: {
scripts:[
'assets/js/vendor/jquery-2.1.4.min.js',
'assets/js/vendor/jquery.countdown.js',
'assets/js/vendor/countdown.js',
'assets/js/tm/tm.framework.js',
'assets/js/tm/tm.framework.filter.js',
'assets/js/tm/tm.framework.select.js',
'assets/js/tm/tm.framework.contact.js',
'assets/js/tm/tm.framework.live.js',
'assets/js/tm/tm.framework.campus.js',
'assets/js/src/bower.js',
'assets/js/src/hf.js'
],
less:['assets/less/master.less']
}
};
/*
* jsHint
*/
gulp.task('jshint', function () {
console.log('–:::– JSHINT –:::–');
return gulp.src(['assets/js/tm/**/*.js'])
.pipe($.jshint())
.pipe($.jshint.reporter('jshint-stylish'))
});
/*
* Contact script files to master.js
*/
gulp.task('scripts', function(){
console.log('–:::– SCRIPTS –:::–');
return gulp.src(paths.process.scripts)
.pipe($.changed('assets/js/'))
.pipe($.concat('master.js'))
.pipe(gulp.dest('assets/js/'));
});
/*
* Minify master.js => master.min.js
*/
gulp.task('compress',['scripts'], function(){
console.log('–:::– COMPRESS JS –:::–');
return gulp.src('assets/js/master.js')
.pipe($.jsmin())
.pipe($.rename({suffix: '.min'}))
.pipe(gulp.dest('assets/js/'));
});
/*
* Concat bower scripts to bower.js
*/
gulp.task('bower', function() {
console.log('–:::– BOWER –:::–');
var filterJS = filter('**/*.js', {restore: true});
var filterCSS = filter('**/*.css', {restore: true});
return gulp.src('./bower.json')
.pipe($.mainBowerFiles({
overrides: {
masonry: {
main: [
'./dist/masonry.pkgd.min.js'
]
}
}
}))
.pipe(filterJS)
.pipe($.concat('bower.js'))
.pipe(filterJS.restore)
.pipe(gulp.dest('assets/js/src'))
.pipe(filterCSS)
.pipe($.concat('bower.css'))
.pipe(filterCSS.restore)
.pipe(gulp.dest('assets/css/src'));
});
/*
* Less build
*/
gulp.task('less',function(){
console.log('–:::LESS:::–');
return gulp.src(paths.process.less)
.pipe(autoprefix())
.pipe($.sourcemaps.init())
.pipe($.less())
.pipe($.sourcemaps.write('../maps'))
.pipe(gulp.dest('assets/css/src'));
});
/*
* Minify & autoprefix styles
*/
gulp.task('styles',function(){
console.log('–:::STYLES:::–');
return gulp.src('assets/css/src/**/*')
.pipe($.concat('screen.css'))
.pipe($.minifyCss())
.pipe(gulp.dest('assets/css'));
});
/*
* Notification when script process is done.
*/
gulp.task('notify',['compress'],function(){
return gulp.src("notify.ext")
.pipe($.notify({
"title": "Houston's First",
//"subtitle": "Project web site",
"message": "JS processing successful!",
"sound": "Morse", // case sensitive
"icon": "assets/img/logo.svg", // case sensitive
"onLast": true,
"wait": true
}));
});
/*
* Notification when script process is done.
*/
gulp.task('notifycss',['styles'],function(){
return gulp.src("notify.ext")
.pipe($.notify({
"title": "Houston's First",
//"subtitle": "Project web site",
"message": "CSS processing successful!",
"sound": "Morse", // case sensitive
"icon": "assets/img/logo.svg", // case sensitive
"onLast": true,
"wait": true
}));
});
/*
* Watch 'default'
*/
gulp.task('default', function() {
gulp.watch(paths.watch.scripts, ['scripts','compress','notify']);
gulp.watch(paths.watch.styles, ['less','styles','notifycss']);
//gulp.watch(paths.images, ['images']);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment