Project for the UPV to develop an app like BlaBlaCar but only for UPV people.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 188 lines 4.8 kB view raw
1'use strict'; 2var gulp = require('gulp'); 3var sass = require('gulp-sass'); 4var rename = require("gulp-rename"); 5var uglify = require('gulp-uglify'); 6var beautify = require('gulp-beautify'); 7var gulpif = require('gulp-if'); 8var util = require('gulp-util'); 9var browserify = require('browserify'); 10var watchify = require('watchify'); 11var babelify = require('babelify'); 12var source = require('vinyl-source-stream'); 13var buffer = require('vinyl-buffer'); 14var imagemin = require('gulp-imagemin'); 15 16var config = require('./package.json'); 17 18 19// Helper for handle static paths 20// ----------------------------------------------------------------------------- 21var pathsConfig = function (appName) { 22 var app = appName || config.name; 23 return { 24 app: app, 25 templates: app + '/templates', 26 dist: { 27 base: app + '/static/dist/', 28 css: app + '/static/dist/css', 29 fonts: app + '/static/dist/fonts', 30 images: app + '/static/dist/img', 31 js: app + '/static/dist/js' 32 }, 33 src: { 34 sass: app + '/static/src/sass', 35 fonts: app + '/static/src/fonts', 36 images: app + '/static/src/img', 37 js: app + '/static/src/js' 38 }, 39 manageScript: app + 'manage.py' 40 } 41}; 42 43 44// CSS Task 45// ----------------------------------------------------------------------------- 46var cssTask = function (options) { 47 48 // Default include node_modules to SASS include paths 49 var sassOptions = { 50 includePaths: ['./node_modules/'], 51 errLogToConsole: true 52 }; 53 54 // Common 'run' code for each options 55 var run = function (options) { 56 options = sassOptions || options; 57 gulp.src(pathsConfig().src.sass + '/project.scss') 58 .pipe(sass(options).on('error', sass.logError)) 59 .pipe(rename('bundle.css')) 60 .pipe(gulp.dest(pathsConfig().dist.css)); 61 }; 62 63 // Run for development with watch 64 if (options.development) { 65 run(); 66 gulp.watch(options.watch, run); 67 // Run for production with compressed 68 } else { 69 run({outputStyle: 'compressed'}); 70 } 71 72}; 73 74// Images Task 75// ----------------------------------------------------------------------------- 76var imagesTask = function (options) { 77 var run = function () { 78 gulp.src(pathsConfig().src.images + '**/*') 79 .pipe(imagemin()) 80 .pipe(gulp.dest(pathsConfig().dist.base)); 81 }; 82 83 // Run for development with watch 84 if (options.development) { 85 run(); 86 gulp.watch(options.watch, run); 87 // Run for production with compressed 88 } else { 89 run(); 90 } 91}; 92 93// Fonts Task 94// ----------------------------------------------------------------------------- 95var fontsTask = function (options) { 96 var run = function () { 97 gulp.src(pathsConfig().src.fonts + '**/*') 98 .pipe(gulp.dest(pathsConfig().dist.base)); 99 }; 100 101 // Run for development with watch 102 if (options.development) { 103 run(); 104 gulp.watch(options.watch, run); 105 // Run for production with compressed 106 } else { 107 run(); 108 } 109}; 110 111// App Task 112// ----------------------------------------------------------------------------- 113// Task to build a bundle.js file with all the JavaScript code of the app, 114// using browserify. 115var appTask = function (options) { 116 117 // App bundle creator 118 var appBundler = browserify({ 119 entries: [options.src], 120 transform: [babelify], 121 debug: options.development, 122 cache: {}, 123 packageCache: {}, 124 fullPaths: options.development 125 }); 126 127 // The bundle process 128 var bundle = function () { 129 return appBundler.bundle() 130 .on('error', util.log) 131 .pipe(source('app.js')) 132 .pipe(buffer()) 133 .pipe(gulpif(!options.development, uglify(), beautify())) 134 .pipe(rename('bundle.js')) 135 .pipe(gulp.dest(options.dist)) 136 }; 137 138 // Fire up watchify when developing 139 if (options.development) { 140 appBundler = watchify(appBundler); 141 appBundler.on('update', bundle); 142 } 143 144 // Call to create bundle 145 bundle(); 146}; 147 148// Default Task 149// ----------------------------------------------------------------------------- 150// Starts our development workflow 151gulp.task('default', function () { 152 cssTask({ 153 watch: pathsConfig().src.sass + "/**/*.scss", 154 development: true 155 }); 156 appTask({ 157 src: pathsConfig().src.js + "/app.js", 158 dist: pathsConfig().dist.js, 159 development: true 160 }); 161 imagesTask({ 162 development: false, 163 watch: pathsConfig().src.images + "/**/*" 164 }); 165 fontsTask({ 166 development: false, 167 watch: pathsConfig().src.fonts + "/**/*" 168 }); 169}); 170 171// Deploy Task 172// ----------------------------------------------------------------------------- 173gulp.task('deploy', function () { 174 cssTask({ 175 development: false 176 }); 177 appTask({ 178 src: pathsConfig().src.js + "/app.js", 179 dist: pathsConfig().dist.js, 180 development: false 181 }); 182 imagesTask({ 183 development: false 184 }); 185 fontsTask({ 186 development: false 187 }); 188});