grunt-mustache-combine
v0.1.0
Published
Combine Mustache templates.
Downloads
88
Readme
grunt-mustache-combine
Combine Mustache templates into one file.
Getting Started
This plugin will combine all your Mustache templates into one file (object
) and use the path of the file as the key. It won't pre-parse the file, because Mustache will do that on the first render.
Install
$ npm install --save-dev grunt-mustache-combine
Usage
require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks
grunt.initConfig({
mustache_combine: {
all: {
files: 'js/templates.js': ['templates/**/*.mustache']
}
}
});
grunt.registerTask('default', ['mustache_combine']);
Examples
Custom config and rules
grunt.initConfig({
mustache_combine: {
options: {
format: 'amd',
extension: '.html',
removeFromKey: 'path/to/'
},
all: {
files: 'dist/templates.js': ['path/to/templates/**/*.html']
}
}
});
Options
options.format
Type: String
Default: 'es6'
Other possible values: 'commonjs', 'amd', 'es5'
The format to output.
options.extension
Type: String
Default: '.mustache'
The extension to remove from the key.
options.removeFromKey
Type: String
Default: ''
Part of the file path to remove from the key.
options.useLowerCaseKey
Type: Boolean
Default: true
Generate lower case keys. Set to false
to ignore casing.
options.formatKey
Type: Function
Default: null
Function to generate a custom key. It overrules the removeFromKey
and useLowerCaseKey
options and receives the file path as a parameter.
grunt.initConfig({
mustache_combine: {
options: {
formatKey: function(filepath) {
return filepath
.replace('path/to/templates/', 'tpl-')
.toUpperCase();
}
},
all: {
files: 'js/template.js': ['path/to/templates/**/*.mustache']
}
}
});
Output example and usage
// Contents of the generated templates file (default ES6 format)
export default {"my/template": "<h1>hello {{name}}</h1>"};
// In your module.js
import Mustache from 'mustache';
import templates from './templates';
const tpl = templates['my/template'];
Mustache.render(tpl, {name: 'World'});
License
MIT © VI Company