From 9ddfe34acc31501f1200bfc711945708671cbb40 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Sat, 23 Mar 2013 16:24:27 -0700 Subject: [PATCH] added precompiling of handlebar templates to grunt. --- Gruntfile.js | 54 +++++++++++++++++++++++++++++++++++++++------------- package.json | 5 ++++- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 8a3ff379a..d521d0e23 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -4,31 +4,59 @@ module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { - files: { - expand: true, // Enable dynamic expansion. - cwd: 'NzbDrone.Backbone/', // Src matches are relative to this path. - src: ['**/*.js'], // Actual pattern(s) to match. - dest: 'build/', // Destination path prefix. - ext: '.min.js' // Dest filepaths will have this extension. + files: { + expand: true, // Enable dynamic expansion. + cwd: 'NzbDrone.Backbone/', // Src matches are relative to this path. + src: ['**/*.js'], // Actual pattern(s) to match. + dest: 'build/', // Destination path prefix. + ext: '.min.js' // Dest filepaths will have this extension. + } + }, + less:{ + bootstrap:{ + files: { + "NzbDrone.Backbone/Content/bootstrap.css": "NzbDrone.Backbone/Content/Bootstrap/bootstrap.less" + } } }, + handlebars: { options: { - namespace: "NzbDrone.Templates" + namespace: "NzbDrone.Templates", + wrapped: false, + processName: function(fileName){ + return fileName + .replace('NzbDrone.Backbone/','') + .replace('.html',''); + } }, files: { - expand: true, // Enable dynamic expansion. - cwd: 'NzbDrone.Backbone/', // Src matches are relative to this path. - src: ['**/*Template.html'], - ext: '.hbs' // Actual pattern(s) to match. + src: ['NzbDrone.Backbone/**/*emplate.html'], + dest: 'NzbDrone.Backbone/templates.js' + }, + }, + + watch:{ + bootstrap:{ + files: 'NzbDrone.Backbone/Content/Bootstrap/*.less', + tasks: ['less:bootstrap'] + }, + handlebars:{ + files: '<%= handlebars.files.src %>', + tasks: ['handlebars'] } - }}); + + } + }); // Load the plugin that provides the "uglify" task. grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-handlebars'); + grunt.loadNpmTasks('grunt-contrib-less'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-concat'); // Default task(s). - grunt.registerTask('default', ['uglify']); + grunt.registerTask('default', ['watch']); }; \ No newline at end of file diff --git a/package.json b/package.json index 5b294aae5..fe28c3b43 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,9 @@ "dependencies": { "grunt": "*", "grunt-contrib-uglify": "*", - "grunt-contrib-handlebars": "*" + "grunt-contrib-handlebars": "*", + "grunt-contrib-watch": "~0.3.1", + "grunt-contrib-less": "~0.5.0", + "grunt-contrib-concat": "~0.1.3" } }