unserver-unify
Version:
107 lines (92 loc) • 3.37 kB
JavaScript
;
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,
conditionals: true,
quotes: true
}))
.pipe($.angularTemplatecache('templateCacheHtml.js', {
module: 'bamboo'
}))
.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', { restore: true });
var jsFilter = $.filter('**/*.js', { restore: true });
var cssFilter = $.filter('**/*.css', { restore: true });
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($.replace('../bootstrap/fonts', '../fonts'))
.pipe($.replace('/bower_components/font-awesome/fonts', '../fonts'))
.pipe($.replace('/bower_components/bootstrap/fonts', '../fonts'))
.pipe($.replace('fonts/videogular', '../fonts/videogular'))
.pipe($.csso())
.pipe(cssFilter.restore)
.pipe(assets.restore())
.pipe($.useref())
.pipe($.revReplace())
.pipe(htmlFilter)
.pipe($.minifyHtml({
empty: true,
spare: true,
conditionals: true,
quotes: true
}))
.pipe(htmlFilter.restore)
.pipe(gulp.dest(paths.dist + '/'))
.pipe($.size({ title: paths.dist + '/', showFiles: true }));
});
gulp.task('assets', function () {
return gulp.src(paths.src + '/assets/**/*')
.pipe(gulp.dest(paths.dist + '/assets/'));
});
gulp.task('fonts', function () {
return gulp.src($.mainBowerFiles())
.pipe($.filter('**/*.{eot,svg,ttf,woff,woff2}'))
.pipe($.flatten())
.pipe(gulp.dest(paths.dist + '/fonts/'));
});
gulp.task('fontawesome', function () {
return gulp.src('bower_components/font-awesome/fonts/*.{eot,svg,ttf,woff,woff2}')
.pipe(gulp.dest(paths.dist + '/fonts/'));
});
gulp.task('fontbootstrap', function () {
return gulp.src('bower_components/bootstrap/fonts/*.{eot,svg,ttf,woff,woff2}')
.pipe(gulp.dest(paths.dist + '/fonts/'));
});
gulp.task('videogular', function () {
return gulp.src('src/assets/libs/videogular-themes-default/fonts/*.{eot,svg,ttf,woff,woff2}')
.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', 'assets', 'fonts', 'fontawesome','fontbootstrap','videogular', 'misc','inject']);