52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
var fs = require('fs'),
|
|
gulp = require('gulp'),
|
|
lazypipe = require('lazypipe'),
|
|
footer = require('gulp-footer'),
|
|
sourcemaps = require('gulp-sourcemaps'),
|
|
rev = require('gulp-rev'),
|
|
htmlmin = require('gulp-htmlmin'),
|
|
ngAnnotate = require('gulp-ng-annotate'),
|
|
prefix = require('gulp-autoprefixer'),
|
|
cssnano = require('gulp-cssnano'),
|
|
uglify = require('gulp-uglify'),
|
|
useref = require("gulp-useref"),
|
|
revReplace = require("gulp-rev-replace"),
|
|
plumber = require('gulp-plumber'),
|
|
gulpIf = require('gulp-if'),
|
|
handleErrors = require('./handle-errors');
|
|
|
|
var config = require('./config');
|
|
|
|
var initTask = lazypipe()
|
|
.pipe(sourcemaps.init);
|
|
var jsTask = lazypipe()
|
|
.pipe(ngAnnotate)
|
|
.pipe(uglify);
|
|
var cssTask = lazypipe()
|
|
.pipe(prefix)
|
|
.pipe(cssnano);
|
|
|
|
module.exports = function() {
|
|
var templates = fs.readFileSync(config.tmp + '/templates.js');
|
|
var manifest = gulp.src(config.revManifest);
|
|
|
|
return gulp.src([config.app + '**/*.html',
|
|
'!' + config.app + 'app/**/*.html',
|
|
'!' + config.app + 'swagger-ui/**/*',
|
|
'!' + config.bower + '**/*.html'])
|
|
.pipe(plumber({errorHandler: handleErrors}))
|
|
//init sourcemaps and prepend semicolon
|
|
.pipe(useref({}, initTask))
|
|
//append html templates
|
|
.pipe(gulpIf('**/app.js', footer(templates)))
|
|
.pipe(gulpIf('*.js', jsTask()))
|
|
.pipe(gulpIf('*.css', cssTask()))
|
|
.pipe(gulpIf('*.html', htmlmin({collapseWhitespace: true})))
|
|
.pipe(gulpIf('**/*.!(html)', rev()))
|
|
.pipe(revReplace({manifest: manifest}))
|
|
.pipe(sourcemaps.write('.'))
|
|
.pipe(gulp.dest(config.dist));
|
|
};
|