Skip to content

Instantly share code, notes, and snippets.

@stevenquiroa
Last active December 13, 2016 21:51
Show Gist options
  • Save stevenquiroa/2ebf4e1b86d482fbb6612b6e4d052a78 to your computer and use it in GitHub Desktop.
Save stevenquiroa/2ebf4e1b86d482fbb6612b6e4d052a78 to your computer and use it in GitHub Desktop.
gulpfile.js v2
// Gulp file for eu_musicales
// Compiles SASS, Concatenates and minifies vendors, and serves templates system for html css development
// "author": "Javier Castillo <javier@royalestudios.com>",
var gulp = require('gulp');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
var minify = require('gulp-minify-css');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var jshint = require('gulp-jshint');
var clone = require('gulp-clone');
var prettify = require('gulp-prettify'); // for html ./dist markup
var rename = require('gulp-rename');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;
var fileinclude = require('gulp-file-include');
const notificator = require('gulp-jshint-notify-reporter');
var es = require('event-stream');
const paths = {
'scripts': ['assets/scripts/*.js'],
'styles': ['assets/styles/*.scss'],
'dist' : './dist'
};
//compila los vendors js en un solo archivo
gulp.task('vendors-js', function() {
return gulp.src([
// Include all the js vendor libraries
])
.pipe(concat('vendor.js'))
.pipe(gulp.dest( paths.dist + '/scripts' ))
});
//compila los vendors css en un solo archivo
gulp.task('vendors-css', function() {
return gulp.src([
// Include all the css external libraries
//'./bower_components/material-design-lite/material.min.css'
])
.pipe(concat('vendor.css'))
.pipe(minify())
.pipe(gulp.dest( paths.dist + '/styles' ))
});
//compila los vendors en un solo archivo (css y js)
gulp.task('vendors', ['vendors-css', 'vendors-js']);
var scripts = function (event) {
console.log('scripts: silence is golden');
//var type = event.type;
var gulpath = event.path || paths.scripts;
var stream = gulp.src( gulpath )
.pipe( jshint() )
.pipe( jshint.reporter('default') )
.pipe( notificator() );
var uglified = stream.pipe(clone())
.pipe(uglify().on('error', function(err){
console.log('error fatal: ', err.fileName, 'line: ', err.lineNumber);
}))
.pipe(rename(function (file) {
file.basename = file.basename + '.min'
}));
return es.merge(stream, uglified)
.pipe( gulp.dest( paths.dist + '/scripts' ) );
}
gulp.task('scripts', scripts);
var styles = function(event) {
console.log('styles: silence is golden');
var gulpath = event.path || paths.styles;
var stream = gulp.src(gulpath)
.pipe(sass.sync().on('error', sass.logError))
var minified = stream.pipe(clone())
.pipe(sourcemaps.init())
.pipe(minify())
.pipe(sourcemaps.write())
.pipe(rename(function (file) {
file.basename = file.basename + '.min'
}));
return es.merge(stream, minified).pipe(gulp.dest(paths.dist + '/styles'));
}
gulp.task('styles', styles);
gulp.task('serve', ['sass', 'scripts'], function() {
// browserSync.init({
// server: "./dist"
// });
gulp.watch('./assets/styles/*.scss', ['sass']);
gulp.watch('./assets/scripts/*.js', ['scripts']);
});
gulp.task('watch', function(){
gulp.watch( paths.scripts ).on('change', scripts);
gulp.watch( paths.styles ).on('change', styles);
});
gulp.task('default', ['watch']);
gulp.task('build', ['vendors', 'scripts', 'styles']);
{
"name": "musicales",
"version": "1.0.0",
"description": "Frontend Framework for musicales website",
"main": "gulpfile.js",
"dependencies": {
},
"devDependencies": {
"browser-sync": "^2.13.0",
"gulp": "^3.9.1",
"gulp-clean-css": "^2.0.10",
"gulp-clone": "^1.0.0",
"gulp-concat": "^2.6.0",
"gulp-file-include": "^1.0.0",
"gulp-htmllint": "0.0.11",
"gulp-jshint": "^2.0.1",
"gulp-minify-css": "^1.2.4",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.0.0",
"gulp-uglify": "^2.0.0",
"jshint": "^2.9.2",
"event-stream": "^3.3.4",
"gulp-jshint-notify-reporter": "^1.0.2",
"gulp-prettify": "^0.5.0",
"gulp-sourcemaps": "^1.6.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Steven Quiroa <stevenkm92@gmail.com>, Yeisson Chicas <jason@royalestudios.com>, Javier Castillo <javier@royalestudios.com>",
"license": "MIT"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment