var gulp = require('gulp'), uglify = require('gulp-uglify'), rename = require('gulp-rename'), concat = require('gulp-concat'), handlebars = require('gulp-handlebars'), wrap = require('gulp-wrap'), path = require('path'), htmlclean = require('gulp-htmlclean'), merge = require('merge-stream'), declare = require('gulp-declare'), source = require('vinyl-source-buffer'), /** * Compile handlebars templates */ gulp.task('templates', function () { // Assume all partials start with an underscore // You could also put them in a folder such as source/templates/partials/*.hbs var partials = gulp.src( partials_source ) .pipe( htmlclean() ) .pipe( handlebars()) .pipe( wrap('Handlebars.registerPartial(<%= processPartialName(file.relative) %>, Handlebars.template(<%= contents %>));', {}, { imports: { processPartialName: function(fileName) { // Strip the extension and the underscore // Escape the output with JSON.stringify return JSON.stringify(path.basename(fileName, '.js').substr(1)); } } })); var templates = gulp.src( templates_source ) .pipe( htmlclean() ) .pipe( handlebars() ) .pipe( wrap('Handlebars.template(<%= contents %>)') ) .pipe( declare({ namespace : 'Publish.templates', noRedeclare : true })); return merge(partials, templates) .pipe( uglify() ) .pipe( concat( 'publish.templates.js' ) ) .pipe( rename( { suffix : '.min' } ) ) .pipe( gulp.dest('./publish/assets/js') ); });
Leave a Reply
You must be logged in to post a comment.