--- 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: '<script src="{% static \'ammico/js/%s\' %}"></script>'
- },
- css: {
- src: ['lib.css', 'app.css'],
- tpl: '<link rel="stylesheet" type="text/css" href="{% static \'ammico/css/%s\' %}"/>'
- },
- imgLogo: {
- src: 'ammico_logo_small.png',
- tpl: '<img src="{% static \'ammico/img/%s\' %}">'
- },
- imgFooter: {
- src: 'logo_IRI_footer.png',
- tpl: '<img src="{% static \'ammico/img/%s\' %}" alt="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: '<script src="{% static \'ammico/js/%s\' %}"></script>'
+ },
+ css: {
+ src: ['lib.css', 'app.css'],
+ tpl: '<link rel="stylesheet" type="text/css" href="{% static \'ammico/css/%s\' %}"/>'
+ },
+ imgLogo: {
+ src: 'ammico_logo_small.png',
+ tpl: '<img src="{% static \'ammico/img/%s\' %}">'
+ },
+ imgFooter: {
+ src: 'logo_IRI_footer.png',
+ tpl: '<img src="{% static \'ammico/img/%s\' %}" alt="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']);
+