Created
August 19, 2015 16:31
-
-
Save a-am/c29b723103efef9f8a18 to your computer and use it in GitHub Desktop.
Gulp Start File
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
/* | |
* 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