Skip to content

Instantly share code, notes, and snippets.

@raank
Created January 19, 2015 10:04
Show Gist options
  • Save raank/bad907a1ed9453362393 to your computer and use it in GitHub Desktop.
Save raank/bad907a1ed9453362393 to your computer and use it in GitHub Desktop.
GulpFile.js
"use strict";
var gulp = require( "gulp" ),
plugins = require( "gulp-load-plugins" )({ lazy: false }),
argv = require( "minimist" )(process.argv.slice(1)),
comb = require( "./csscomb.json" ),
path = require( "path" );
gulp.task( "task:styles", function() {
gulp.src( "../assets/sass/**/*.scss" )
.pipe( plugins.plumber({errorHandler: plugins.notify.onError("Erro ao compilar os styles, <%= error.message %>")}))
.pipe( plugins.rubySass({
loadPath : [ "../assets/components" ],
noCache : true,
compass : true,
style : "compressed",
trace : true,
"sourcemap=none": true
}))
.pipe( plugins.autoprefixer(["last 2 version", "> 1%", "ie 8", "ie 7"], {cascade: false}) )
.pipe( plugins.rename( { suffix: ".min" } ) )
.pipe( plugins.if( !( argv.d || argv.debug ), plugins.minifyCss() ) )
.pipe( gulp.dest( "../build/css" ) )
.pipe( plugins.if( argv.n || argv.notify, plugins.notify("CSS Compilado: <%= file.relative %>")) )
});
gulp.task( "task:javascripts", function() {
gulp.src( [ "../assets/js/**/*.js", "!../assets/js/**/_*.js"] )
.pipe( plugins.plumber({errorHandler: plugins.notify.onError("Erro ao compilar os scripts, <%= error.message %>")}) )
.pipe( plugins.dynamic({ paths: [ "../assets/components" ] }) )
.pipe( plugins.if( !( argv.d || argv.debug ), plugins.uglify() ) )
.pipe( plugins.rename( { suffix: ".min" } ) )
.pipe( gulp.dest( "../build/js" ) )
.pipe( plugins.if(argv.n || argv.notify, plugins.notify("JS Compilado: <%= file.relative %>")) )
});
gulp.task( "task:images:retina", function() {
gulp.src( [ "../build/images/**/*@2x.png", "../build/images/**/*@2x.gif", "../build/images/**/*@2x.jpg" ] )
//gulp.src( "../build/images/colecao/*-@2x.jpg" )
.pipe( plugins.gm(function (gmfile, done) {
done(null, gmfile.resize(50, "%"));
}))
.pipe( plugins.rename(function(path) {
path.basename = path.basename.replace("@2x", "");
}))
.pipe( gulp.dest("../build/images") )
});
gulp.task( "task:clean", function(cb) {
return gulp.src( [ "../build/css/*", "../build/js/*" ], { ready: true } )
.pipe( plugins.clean({ force: true }) )
.pipe( plugins.if(argv.n || argv.notify, plugins.notify("Arquivos removidos com sucesso!")) );
});
gulp.task( "task:csscomb", function(){
return gulp.src([ "../assets/sass/**/*.scss", "!../assets/sass/global/_fonts.scss", "!../assets/sass/global/_mixins.scss" ])
.pipe( plugins.csscomb( comb ) )
.pipe( gulp.dest( "../assets/sass" ) )
.pipe( plugins.if(argv.n || argv.notify, plugins.notify("Organização completa!")) );
});
// Task copia todas as fontes baixadas nos componentes do Bower e insere na pasta build/fonts.
gulp.task( "task:fonts", function() {
return gulp.src( ["../assets/components/**/**.{ttf,woff,svg,eot}", "!../assets/components/**/svg/*"] )
// "!../assets/components/**/svg/*" // ifnore folder SVG folder icons or items
.pipe( plugins.flatten() )
.pipe( gulp.dest( "../build/fonts" ) );
});
/**
=========================
===== Tasks Default =====
=========================
*/
gulp.task( "build", ["task:clean"], function() {
gulp.start( "task:styles", "task:javascripts", "task:fonts" );
});
gulp.task( "default", [ "watch:sass", "watch:js" ] );
gulp.task( "watch:sass", function() {
gulp.watch([ "../assets/sass/**/*.scss" ], [ "task:styles" ]);
});
gulp.task( "watch:js", function() {
gulp.watch([ "../assets/js/**/*.js" ], [ "task:scripts" ]);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment