// Generated on 2017-05-03 using generator-jhipster 4.0.8 'use strict'; var gulp = require('gulp'), rev = require('gulp-rev'), templateCache = require('gulp-angular-templatecache'), htmlmin = require('gulp-htmlmin'), imagemin = require('gulp-imagemin'), ngConstant = require('gulp-ng-constant'), rename = require('gulp-rename'), eslint = require('gulp-eslint'), del = require('del'), runSequence = require('run-sequence'), browserSync = require('browser-sync'), KarmaServer = require('karma').Server, plumber = require('gulp-plumber'), changed = require('gulp-changed'), gulpIf = require('gulp-if'); var handleErrors = require('./gulp/handle-errors'), serve = require('./gulp/serve'), util = require('./gulp/utils'), copy = require('./gulp/copy'), inject = require('./gulp/inject'), build = require('./gulp/build'); var config = require('./gulp/config'); gulp.task('clean', function () { return del([config.dist], { dot: true }); }); gulp.task('copy', ['copy:fonts', 'copy:common']); gulp.task('copy:fonts', copy.fonts); gulp.task('copy:common', copy.common); gulp.task('copy:swagger', copy.swagger); gulp.task('copy:images', copy.images); gulp.task('images', function () { return gulp.src(config.app + 'content/images/**') .pipe(plumber({errorHandler: handleErrors})) .pipe(changed(config.dist + 'content/images')) .pipe(imagemin({optimizationLevel: 5, progressive: true, interlaced: true})) .pipe(rev()) .pipe(gulp.dest(config.dist + 'content/images')) .pipe(rev.manifest(config.revManifest, { base: config.dist, merge: true })) .pipe(gulp.dest(config.dist)) .pipe(browserSync.reload({stream: true})); }); gulp.task('styles', [], function () { return gulp.src(config.app + 'content/css') .pipe(browserSync.reload({stream: true})); }); gulp.task('inject', function() { runSequence('inject:dep', 'inject:app'); }); gulp.task('inject:dep', ['inject:test', 'inject:vendor']); gulp.task('inject:app', inject.app); gulp.task('inject:vendor', inject.vendor); gulp.task('inject:test', inject.test); gulp.task('inject:troubleshoot', inject.troubleshoot); gulp.task('assets:prod', ['images', 'styles', 'html', 'copy:swagger', 'copy:images'], build); gulp.task('html', function () { return gulp.src(config.app + 'app/**/*.html') .pipe(htmlmin({collapseWhitespace: true})) .pipe(templateCache({ module: 'gatewayApp', root: 'app/', moduleSystem: 'IIFE' })) .pipe(gulp.dest(config.tmp)); }); gulp.task('ngconstant:dev', function () { return ngConstant({ name: 'gatewayApp', constants: { VERSION: util.parseVersion(), DEBUG_INFO_ENABLED: true }, template: config.constantTemplate, stream: true }) .pipe(rename('app.constants.js')) .pipe(gulp.dest(config.app + 'app/')); }); gulp.task('ngconstant:prod', function () { return ngConstant({ name: 'gatewayApp', constants: { VERSION: util.parseVersion(), DEBUG_INFO_ENABLED: false }, template: config.constantTemplate, stream: true }) .pipe(rename('app.constants.js')) .pipe(gulp.dest(config.app + 'app/')); }); // check app for eslint errors gulp.task('eslint', function () { return gulp.src(['gulpfile.js', config.app + 'app/**/*.js']) .pipe(plumber({errorHandler: handleErrors})) .pipe(eslint()) .pipe(eslint.format()) .pipe(eslint.failOnError()); }); // check app for eslint errors anf fix some of them gulp.task('eslint:fix', function () { return gulp.src(config.app + 'app/**/*.js') .pipe(plumber({errorHandler: handleErrors})) .pipe(eslint({ fix: true })) .pipe(eslint.format()) .pipe(gulpIf(util.isLintFixed, gulp.dest(config.app + 'app'))); }); gulp.task('test', ['inject:test', 'ngconstant:dev'], function (done) { new KarmaServer({ configFile: __dirname + '/' + config.test + 'karma.conf.js', singleRun: true }, done).start(); }); gulp.task('watch', function () { gulp.watch('bower.json', ['install']); gulp.watch(['gulpfile.js', 'pom.xml'], ['ngconstant:dev']); gulp.watch(config.app + 'content/css/**/*.css', ['styles']); gulp.watch(config.app + 'content/images/**', ['images']); gulp.watch(config.app + 'app/**/*.js', ['inject:app']); gulp.watch([config.app + '*.html', config.app + 'app/**', config.app + 'i18n/**']).on('change', browserSync.reload); }); gulp.task('install', function () { runSequence(['inject:dep', 'ngconstant:dev'], 'inject:app', 'inject:troubleshoot'); }); gulp.task('serve', ['install'], serve); gulp.task('build', ['clean'], function (cb) { runSequence(['copy', 'inject:vendor', 'ngconstant:prod'], 'inject:app', 'inject:troubleshoot', 'assets:prod', cb); }); gulp.task('default', ['serve']);