Created
August 23, 2016 01:21
-
-
Save magixsource/75e9db81b921e16649fed93506f062ed to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Generated on 2016-08-22 using generator-jhipster 3.6.1 | |
'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: 'guilinApp', | |
root: 'app/', | |
moduleSystem: 'IIFE' | |
})) | |
.pipe(gulp.dest(config.tmp)); | |
}); | |
gulp.task('ngconstant:dev', function () { | |
return ngConstant({ | |
name: 'guilinApp', | |
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: 'guilinApp', | |
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']); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment