Skip to content

Instantly share code, notes, and snippets.

@kwaledesign
Created June 9, 2014 16:11
Show Gist options
  • Save kwaledesign/ad2c92c2b2eb76ef0876 to your computer and use it in GitHub Desktop.
Save kwaledesign/ad2c92c2b2eb76ef0876 to your computer and use it in GitHub Desktop.
# Load resources
config = require( "./gulpconfig.json" )
pkg = require( "./package.json" )
# Load all plugins from pkg.json
gulp = require( "gulp" )
$ = require( "gulp-load-plugins" )( )
# Clean public dir
gulp.task( "clean", ->
gulp.src( ["./public/*","./config/locales/views/*"], read: false )
.pipe( $.clean() )
)
# Copy fonts
gulp.task( "fonts", ->
gulp.src( config.src.fonts )
.pipe( $.changed( config.dest.fonts ) )
.pipe( gulp.dest( config.dest.fonts ) )
)
# Copy images
gulp.task( "images", ->
gulp.src( config.src.images )
.pipe( $.changed( config.dest.images ) )
.pipe( gulp.dest( config.dest.images ) )
)
# Copy templates
gulp.task( "templates", ->
gulp.src( config.src.templates )
.pipe( $.changed( config.dest.templates ) )
.pipe( gulp.dest( config.dest.templates ) )
)
# Process SASS & copy CSS
gulp.task( "css", ->
gulp.src( config.src.css )
.pipe( $.changed( config.dest.css ) )
.pipe( $.compass(
config_file: "./app/assets/common/config.rb",
css: "./public/assets/stylesheets",
sass: ".app/assets/common/stylesheets"
) )
.pipe( $.concat( "styles-#{pkg.version}.css" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.css ) )
.pipe( $.minifyCss() )
.pipe( $.rename( "styles-#{pkg.version}.min.css" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.css ) )
)
# Process Coffee & copy JS
gulp.task( "js", ->
# Vendor scripts
gulp.src( config.src.vendorjs )
.pipe( $.changed( config.dest.js ) )
.pipe( $.ngmin() )
.pipe( $.concat( "vendor-#{pkg.version}.js" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.js ) )
.pipe( $.uglify() )
.pipe( $.rename( "vendor-#{pkg.version}.min.js" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.js ) )
# App scripts
gulp.src( config.src.coffee )
.pipe( $.changed( config.dest.js ) )
.pipe( $.coffee() )
.pipe( $.ngmin() )
.pipe( $.concat( "app-#{pkg.version}.js" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.js ) )
.pipe( $.uglify() )
.pipe( $.rename( "app-#{pkg.version}.min.js" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.js ) )
# IE polyfills
gulp.src( config.src.polyfills )
.pipe( $.changed( config.dest.js ) )
.pipe( $.flatten() )
.pipe( $.uglify() )
.pipe( $.rename( suffix: ".min" ) )
.pipe( $.filesize() )
.pipe( gulp.dest( config.dest.js ) )
)
# Move locales
gulp.task( "locales", ->
for locale in config.locales
gulp.src( ["./app/assets/common/locales/#{locale}.yml","./app/assets/**/#{locale}.yml"] )
.pipe( $.concat( "#{locale}.yml" ) )
.pipe( gulp.dest( config.dest.locales ) )
)
# Bounce webrick server
gulp.task( "bounce", $.shell.task([
"kill -INT $(cat tmp/pids/server.pid) || true",
"rails s -p#{config.port}"
]))
# Default build
gulp.task( "default", ["locales","templates","images","fonts","css","js"] )
# Build & Server
gulp.task( "serve", ["default"], ->
$.livereload.listen()
gulp.watch( config.src.locales, ["locales"] )#.on( "change", $.livereload.changed )
gulp.watch( config.src.index ).on( "change", $.livereload.changed )
gulp.watch( config.src.scss, ["css"] ).on( "change", $.livereload.changed )
gulp.watch( config.src.coffee, ["js"] ).on( "change", $.livereload.changed )
gulp.watch( config.src.templates, ["templates"] ).on( "change", $.livereload.changed )
gulp.watch( config.src.images, ["images"] ).on( "change", $.livereload.changed )
gulp.watch( config.src.fonts, ["fonts"] ).on( "change", $.livereload.changed )
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment