You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
9 years ago
|
'use strict';
|
||
|
|
||
|
var gulp = require('gulp');
|
||
|
|
||
|
var $ = require('gulp-load-plugins')({
|
||
|
pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del']
|
||
|
});
|
||
|
|
||
|
module.exports = function(options) {
|
||
|
gulp.task('partials', function () {
|
||
|
return gulp.src([
|
||
|
options.src + '/{app,components}/**/*.html',
|
||
|
options.tmp + '/serve/{app,components}/**/*.html'
|
||
|
])
|
||
|
.pipe($.minifyHtml({
|
||
|
empty: true,
|
||
|
spare: true,
|
||
|
quotes: true
|
||
|
}))
|
||
|
.pipe($.angularTemplatecache('templateCacheHtml.js', {
|
||
|
module: 'hybridApps'
|
||
|
}))
|
||
|
.pipe(gulp.dest(options.tmp + '/partials/'));
|
||
|
});
|
||
|
|
||
|
gulp.task('html', ['inject', 'partials'], function () {
|
||
|
var partialsInjectFile = gulp.src(options.tmp + '/partials/templateCacheHtml.js', { read: false });
|
||
|
var partialsInjectOptions = {
|
||
|
starttag: '<!-- inject:partials -->',
|
||
|
ignorePath: options.tmp + '/partials',
|
||
|
addRootSlash: false
|
||
|
};
|
||
|
|
||
|
var htmlFilter = $.filter('*.html');
|
||
|
var jsFilter = $.filter('**/*.js');
|
||
|
var cssFilter = $.filter('**/*.css');
|
||
|
var assets;
|
||
|
|
||
|
return gulp.src(options.tmp + '/serve/*.html')
|
||
|
.pipe($.inject(partialsInjectFile, partialsInjectOptions))
|
||
|
.pipe(assets = $.useref.assets())
|
||
|
.pipe($.rev())
|
||
|
.pipe(jsFilter)
|
||
|
.pipe($.ngAnnotate())
|
||
|
.pipe($.uglify({ preserveComments: $.uglifySaveLicense })).on('error', options.errorHandler('Uglify'))
|
||
|
.pipe(jsFilter.restore())
|
||
|
.pipe(cssFilter)
|
||
|
.pipe($.csso())
|
||
|
.pipe(cssFilter.restore())
|
||
|
.pipe(assets.restore())
|
||
|
.pipe($.useref())
|
||
|
.pipe($.revReplace())
|
||
|
.pipe(htmlFilter)
|
||
|
.pipe($.minifyHtml({
|
||
|
empty: true,
|
||
|
spare: true,
|
||
|
quotes: true,
|
||
|
conditionals: true
|
||
|
}))
|
||
|
.pipe(htmlFilter.restore())
|
||
|
.pipe(gulp.dest(options.dist + '/'))
|
||
|
.pipe($.size({ title: options.dist + '/', showFiles: true }));
|
||
|
});
|
||
|
|
||
|
// Only applies for fonts from bower dependencies
|
||
|
// Custom fonts are handled by the "other" task
|
||
|
gulp.task('fonts', function () {
|
||
|
return gulp.src($.mainBowerFiles())
|
||
|
.pipe($.filter('**/*.{eot,svg,ttf,woff,woff2}'))
|
||
|
.pipe($.flatten())
|
||
|
.pipe(gulp.dest(options.dist + '/fonts/'));
|
||
|
});
|
||
|
|
||
|
gulp.task('other', function () {
|
||
|
return gulp.src([
|
||
|
options.src + '/**/*',
|
||
|
'!' + options.src + '/**/*.{html,css,js,scss}'
|
||
|
])
|
||
|
.pipe(gulp.dest(options.dist + '/'));
|
||
|
});
|
||
|
|
||
|
gulp.task('clean', function (done) {
|
||
|
$.del([options.dist + '/', options.tmp + '/'], done);
|
||
|
});
|
||
|
|
||
|
gulp.task('build', ['html', 'fonts', 'other']);
|
||
|
};
|