Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
gulpfile.js 2.76 KiB
var gulp = require('gulp'),
    less = require('gulp-less'),
    concat = require('gulp-concat'),
    uglify = require('gulp-uglify'),
    plumber = require('gulp-plumber'),
    cssnano = require('gulp-cssnano'),
    webserver = require('gulp-webserver'),
    templatecache = require('gulp-angular-templatecache');

var assets = {
  js: [
    'bower_components/jquery/dist/jquery.min.js',
    'bower_components/angular/angular.min.js',
    'bower_components/angular-resource/angular-resource.min.js',
    'bower_components/angular-sanitize/angular-sanitize.min.js',
    'bower_components/angular-ui-router/release/angular-ui-router.min.js',
    'bower_components/angular-websocket/angular-websocket.min.js',
    'bower_components/bootstrap/dist/js/bootstrap.min.js',
    'bower_components/highcharts/highcharts.js',
    'bower_components/vis/dist/vis.min.js',
    'bower_components/nprogress/nprogress.js'
  ],
  css: [
    'bower_components/bootstrap/dist/css/bootstrap.min.css',
    'bower_components/vis/dist/vis.min.css',
    'bower_components/nprogress/nprogress.css'
  ],
  fonts: [
    'bower_components/bootstrap/dist/fonts/*'
  ],
  img: []
};

gulp.task('less', function() {
  gulp.src('app/less/**/*.less')
      .pipe(plumber())
      .pipe(less())
      .pipe(gulp.dest('public/css'));
});

gulp.task('js', function() {
  gulp.src('app/js/**/*.js')
      .pipe(plumber())
      .pipe(concat('app.js'))
      .pipe(gulp.dest('public/js'));
});

gulp.task('html', function() {
  gulp.src('app/index.html')
      .pipe(gulp.dest('public'));
  gulp.src(['app/html/**/*.html'])
      .pipe(gulp.dest('public/html'));
  gulp.src(['app/html/**/*.html'])
      .pipe(templatecache({
        module: 'vipra.templates',
        standalone: true
      }))
      .pipe(gulp.dest('public/js'));
});

gulp.task('img', function() {
  gulp.src('app/img/**/*.*')
      .pipe(gulp.dest('public/img'));
});

gulp.task('public', function() {
  gulp.src('app/public/**/*')
      .pipe(gulp.dest('public'));
});
gulp.task('assets', function() {
  gulp.src(assets.js)
      .pipe(concat('vendor.js'))
      .pipe(gulp.dest('public/js'));
  gulp.src(assets.css)
      .pipe(concat('vendor.css'))
      .pipe(gulp.dest('public/css'));
  gulp.src(assets.fonts)
      .pipe(gulp.dest('public/fonts'));
  gulp.src(assets.img)
      .pipe(gulp.dest('public/img'));
});

gulp.task('build', ['less', 'js', 'html', 'img', 'public', 'assets']);

gulp.task('watch', function() {
  gulp.watch('app/less/**/*.less', ['less']);
  gulp.watch('app/js/**/*.js', ['js']);
  gulp.watch(['app/index.html', 'app/html/**/*.html'], ['html']);
  gulp.watch('app/public/**/*', ['public']);
});

gulp.task('server', function() {
  gulp.src('public')
      .pipe(webserver({
        open: true,
        port: 4200,
        fallback: 'index.html'
      }));
});