https://github.com/vicompany/grunt-mustache-combine
Combine Mustach templates
https://github.com/vicompany/grunt-mustache-combine
grunt-task mustache
Last synced: 10 months ago
JSON representation
Combine Mustach templates
- Host: GitHub
- URL: https://github.com/vicompany/grunt-mustache-combine
- Owner: vicompany
- License: mit
- Created: 2016-01-28T13:50:10.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-04-05T11:25:27.000Z (about 10 years ago)
- Last Synced: 2024-04-30T06:43:45.720Z (about 2 years ago)
- Topics: grunt-task, mustache
- Language: JavaScript
- Size: 15.6 KB
- Stars: 0
- Watchers: 8
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# grunt-mustache-combine [](https://travis-ci.org/vicompany/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](https://github.com/janl/mustache.js#pre-parsing-and-caching-templates).
## Install
```
$ npm install --save-dev grunt-mustache-combine
```
## Usage
```js
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
```js
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.
```js
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
```js
// Contents of the generated templates file (default ES6 format)
export default {"my/template": "
hello {{name}}
"};
// 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](http://vicompany.nl)