diff -r 7b43de480a11 -r 2db951a4a04c client/gulpfile.js --- a/client/gulpfile.js Thu Apr 23 18:17:58 2015 +0200 +++ b/client/gulpfile.js Thu May 21 11:07:34 2015 +0200 @@ -1,21 +1,23 @@ var gulp = require('gulp'); var gutil = require('gulp-util') var plugins = require("gulp-load-plugins")({lazy:false}); +var mainBowerFiles = require('main-bower-files'); var htmlreplace = require('gulp-html-replace'); -//var flatten = require('gulp-flatten'); -//var uglify = require('gulp-uglify'); -//var clean = require('gulp-clean'); -//var rename = require('gulp-rename'); -//var filesize = require('gulp-filesize'); -//var cssmin = require('gulp-cssmin'); -gulp.task('clean', function () { - return gulp.src('build', {read: false}) - .pipe(clean()); -}); +var templateFolder = './../server/ammico'; +var staticFolder = './../server/ammico/static/ammico'; +var buildFolder = './build'; var scriptsSrc = ['!./app/**/*_test.js','./app/**/*.js']; +gulp.task('templates',function(){ + //combine all template files of the app into a js file + gulp.src(['!./app/index.html', + './app/**/*.html']) + .pipe(plugins.angularTemplatecache('templates.js',{standalone:true})) + .pipe(gulp.dest(buildFolder+'/js')); +}); + gulp.task('scripts', function(){ //combine all js files of the app gulp.src(scriptsSrc) @@ -23,62 +25,33 @@ .pipe(plugins.jshint.reporter('default')) .pipe(plugins.jshint.reporter('fail')) .pipe(plugins.concat('app.js')) - .pipe(gulp.dest('./build')) - .pipe(plugins.filesize()) - .pipe(plugins.uglify()) - .pipe(plugins.rename('app.min.js')) - .pipe(gulp.dest('./build')) + .pipe(gulp.dest(buildFolder+'/js')) .pipe(plugins.filesize()) .on('error', gutil.log); }); -gulp.task('templates',function(){ - //combine all template files of the app into a js file - gulp.src(['!./app/index.html', - './app/**/*.html']) - .pipe(plugins.angularTemplatecache('templates.js',{standalone:true})) - .pipe(gulp.dest('./build')); -}); - gulp.task('css', function(){ gulp.src('./app/**/*.css') -// .pipe(plugins.csslint()) -// .pipe(plugins.csslint.reporter()) + .pipe(plugins.csslint({ 'box-sizing': false })) + .pipe(plugins.csslint.reporter()) .pipe(plugins.concat('app.css')) - .pipe(gulp.dest('./build')) - .pipe(plugins.filesize()) - .pipe(plugins.minifyCss({keepBreaks:true})) - .pipe(plugins.rename('app.min.css')) - .pipe(gulp.dest('./build')) + .pipe(gulp.dest(buildFolder+'/css')) .pipe(plugins.filesize()); }); -var vendorJSsrc = [ - '!./bower_components/**/*.min.js', - '!./bower_components/bootstrap/**/*', - '!./bower_components/jquery/src/**/*', - '!./bower_components/jquery-ui/themes/**', - '!./bower_components/jquery-ui/ui/**', - '!./bower_components/jquery-ui/ui/*.js', - '!./bower_components/**/index.js', - './bower_components/bootstrap/dist/css/*', - './bower_components/jquery/dist/jquery.js', - './bower_components/angular/angular.js', - './bower_components/angular-route/angular-route.js', - './bower_components/angular-resource/angular-resource.js', - './bower_components/angular-bootstrap/ui-bootstrap.js', - './bower_components/**/*.js' -]; - gulp.task('vendorJS', function(){ //concatenate vendor JS files - gulp.src(vendorJSsrc) + return gulp.src(mainBowerFiles('**/*.js', { + "overrides":{ + "angular": { + "dependencies": { + "jquery": "~1.8" + } + } + } + })) .pipe(plugins.concat('lib.js')) - .pipe(gulp.dest('./build')) - .pipe(plugins.filesize()) - .pipe(plugins.uglify()) - .pipe(plugins.rename('lib.min.js')) - .pipe(gulp.dest('./build')) + .pipe(gulp.dest(buildFolder+'/js')) .pipe(plugins.filesize()) .on('error', gutil.log); }); @@ -88,18 +61,37 @@ gulp.src(['!./bower_components/**/*.min.css', './bower_components/**/*.css']) .pipe(plugins.concat('lib.css')) - .pipe(gulp.dest('./build')) - .pipe(plugins.filesize()) - .pipe(plugins.minifyCss({keepBreaks:true})) - .pipe(plugins.rename('lib.min.css')) - .pipe(gulp.dest('./build')) + .pipe(gulp.dest(buildFolder+'/css')) .pipe(plugins.filesize()); }); gulp.task('vendorFonts', function(){ gulp.src(['./bower_components/**/fonts/*']) .pipe(plugins.flatten()) - .pipe(gulp.dest('./build/fonts')); + .pipe(gulp.dest(buildFolder+'/fonts')); +}); + +gulp.task('minimify', function(){ + gulp.src(buildFolder+'/js/lib.js') + .pipe(plugins.uglify()) + .pipe(plugins.rename('lib.min.js')) + .pipe(gulp.dest(buildFolder+'/js')) + .pipe(plugins.filesize()); + gulp.src(buildFolder+'/js/app.js') + .pipe(plugins.uglify()) + .pipe(plugins.rename('app.min.js')) + .pipe(gulp.dest(buildFolder+'/js')) + .pipe(plugins.filesize()); + gulp.src(buildFolder+'/css/app.css') + .pipe(plugins.minifyCss({keepBreaks:true, processImport: false})) + .pipe(plugins.rename('app.min.css')) + .pipe(gulp.dest(buildFolder+'/css')) + .pipe(plugins.filesize()); + gulp.src(buildFolder+'/css/lib.css') + .pipe(plugins.minifyCss({keepBreaks:true, processImport: false})) + .pipe(plugins.rename('lib.min.css')) + .pipe(gulp.dest(buildFolder+'/css')) + .pipe(plugins.filesize()); }); gulp.task('copy-index', function() { @@ -109,51 +101,51 @@ gulp.task('copy-data', function() { gulp.src('./data/**/*') - .pipe(gulp.dest('./build/data')); + .pipe(gulp.dest(buildFolder+'/data')); }); gulp.task('copy-img', function() { gulp.src('./img/**/*') - .pipe(gulp.dest('./build/img')); + .pipe(gulp.dest(buildFolder+'/img')); }); gulp.task('copy-server', function() { - gulp.src('./build/img/**/*') - .pipe(gulp.dest('./../server/ammico/static/ammico/img')); - gulp.src('./build/fonts/**/*') - .pipe(gulp.dest('./../server/ammico/static/ammico/fonts')); - gulp.src('./build/*.js') - .pipe(gulp.dest('./../server/ammico/static/ammico/js')); - gulp.src('./build/*.css') - .pipe(gulp.dest('./../server/ammico/static/ammico/css')); - gulp.src('./app/index.html') - .pipe(htmlreplace({ - django: '{% load static %}', - js:{ - src: ['lib.js', 'templates.js', 'app.js'], - tpl: '' - }, - css: { - src: ['lib.css', 'app.css'], - tpl: '' - }, - imgLogo: { - src: 'ammico_logo_small.png', - tpl: '' - }, - imgFooter: { - src: 'logo_IRI_footer.png', - tpl: 'Logo IRI' - } - })) - .pipe(gulp.dest('./../server/ammico/templates')); + gulp.src(buildFolder+'/img/**/*') + .pipe(gulp.dest(staticFolder+'/img')); + gulp.src(buildFolder+'/fonts/**/*') + .pipe(gulp.dest(staticFolder+'/fonts')); + gulp.src(buildFolder+'/js/*.js') + .pipe(gulp.dest(staticFolder+'/js')); + gulp.src(buildFolder+'/css/*.css') + .pipe(gulp.dest(staticFolder+'/css')); + gulp.src(buildFolder+'/index.html') + .pipe(htmlreplace({ + django: '{% load static %}', + js:{ + src: ['lib.js', 'templates.js', 'app.js'], + tpl: '' + }, + css: { + src: ['lib.css', 'app.css'], + tpl: '' + }, + imgLogo: { + src: 'ammico_logo_small.png', + tpl: '' + }, + imgFooter: { + src: 'logo_IRI_footer.png', + tpl: 'Logo IRI' + } + })) + .pipe(gulp.dest(templateFolder+'/templates')); }); gulp.task('watch',function(){ gulp.watch([ - 'build/**/*.html', - 'build/**/*.js', - 'build/**/*.css' + buildFolder+'/**/*.html', + buildFolder+'/**/*.js', + buildFolder+'/**/*.css' ], function(event) { return gulp.src(event.path) .pipe(plugins.connect.reload()); @@ -164,13 +156,17 @@ gulp.watch('./app/index.html',['copy-index']); gulp.watch('./data/**/*',['copy-data']); gulp.watch('./img/**/*',['copy-img']); - }); -gulp.task('connect', plugins.connect.server({ - root: ['build'], - port: 9000, - livereload: true -})); -gulp.task('default',['connect','scripts','templates','css','copy-index','copy-data','copy-img','vendorJS','vendorCSS','vendorFonts','watch']); +gulp.task('connect', function() { + plugins.connect.server({ + root: buildFolder, + port: 9000, + livereload: true + }); +}); + +gulp.task('default',['connect','scripts','css', 'templates','copy-index','copy-data','copy-img','vendorJS','vendorCSS','vendorFonts','watch']); +gulp.task('copy-server',['scripts','css', 'templates','copy-index','copy-data','copy-img','vendorJS','vendorCSS','vendorFonts','minimify','copy-server']); +