Blame view

gulp/build.js 2.27 KB
66ee5529f   Palak Handa   initial commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  'use strict';
  
  var gulp = require('gulp');
  
  var paths = gulp.paths;
  
  var $ = require('gulp-load-plugins')({
    pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del']
  });
  
  gulp.task('partials', function () {
    return gulp.src([
      paths.src + '/{app,components}/**/*.html',
      paths.tmp + '/{app,components}/**/*.html'
    ])
      .pipe($.minifyHtml({
        empty: true,
        spare: true,
        quotes: true
      }))
      .pipe($.angularTemplatecache('templateCacheHtml.js', {
        module: 'didPanelApp'
      }))
      .pipe(gulp.dest(paths.tmp + '/partials/'))
  });
  
  gulp.task('html', ['inject', 'partials'], function () {
    var partialsInjectFile = gulp.src(paths.tmp + '/partials/templateCacheHtml.js', { read: false });
    var partialsInjectOptions = {
      starttag: '<!-- inject:partials -->',
      ignorePath: paths.tmp + '/partials',
      addRootSlash: false
    };
  
    var htmlFilter = $.filter('*.html');
    var jsFilter = $.filter('**/*.js');
    var cssFilter = $.filter('**/*.css');
    var assets;
  
    return gulp.src(paths.tmp + '/serve/*.html')
      .pipe($.inject(partialsInjectFile, partialsInjectOptions))
      .pipe(assets = $.useref.assets())
      .pipe($.rev())
      .pipe(jsFilter)
      .pipe($.ngAnnotate())
      .pipe($.uglify({preserveComments: $.uglifySaveLicense}))
      .pipe(jsFilter.restore())
      .pipe(cssFilter)
      .pipe($.csso())
      .pipe(cssFilter.restore())
      .pipe(assets.restore())
      .pipe($.useref())
      .pipe($.revReplace())
      .pipe(htmlFilter)
      .pipe($.minifyHtml({
        empty: true,
        spare: true,
        quotes: true
      }))
      .pipe(htmlFilter.restore())
      .pipe(gulp.dest(paths.dist + '/'))
      .pipe($.size({ title: paths.dist + '/', showFiles: true }));
  });
  
  gulp.task('images', function () {
    return gulp.src(paths.src + '/assets/images/**/*')
      .pipe(gulp.dest(paths.dist + '/assets/images/'));
  });
  
  gulp.task('fonts', function () {
    return gulp.src($.mainBowerFiles())
      .pipe($.filter('**/*.{eot,svg,ttf,woff}'))
      .pipe($.flatten())
      .pipe(gulp.dest(paths.dist + '/fonts/'));
  });
  
  gulp.task('misc', function () {
    return gulp.src(paths.src + '/**/*.ico')
      .pipe(gulp.dest(paths.dist + '/'));
  });
  
  gulp.task('clean', function (done) {
    $.del([paths.dist + '/', paths.tmp + '/'], done);
  });
  
  gulp.task('build', ['html', 'images', 'fonts', 'misc']);