gulp-template-compile

Gulp task to precompile lodash templates

Usage no npm install needed!

<script type="module">
  import gulpTemplateCompile from 'https://cdn.skypack.dev/gulp-template-compile';
</script>

README

gulp-template-compile

Compile Lo-Dash templates (should work with Underscore templates too).

Synopsis

This plugin is heavily inspired by Sindre Sorhus's gulp-nunjucks plugin, in fact I used it as skeleton for creating this one.

Install

Install with npm

npm install --save-dev gulp-template-compile

Example

gulpfile.js

var gulp = require('gulp');
var template = require('gulp-template-compile');
var concat = require('gulp-concat');

gulp.task('default', function () {
    gulp.src('src/*.html')
        .pipe(template())
        .pipe(concat('templates.js'))
        .pipe(gulp.dest('dist'));
});

API

See the Lo-Dash _.template docs.

template(options)

options

Type: Object

options.name

Type: Function Default: Relative template path. Example: templates/list.html

You can override the default behavior by supplying a function which gets the current File object and is expected to return the name.

Example:

{
    name: function (file) {
        return 'tpl-' + file.relative;
    }
}

options.namespace

Type: String Default: 'JST'

The namespace in which the precompiled templates will be assigned. Starting from version 1.0 you could also provide a dotted namespace that will be correctly handled, thanks to fhawkes. For example 'custom.namespace' will result in window['custom']['namespace'].

options.templateSettings

Type: Object Default: null

Lo-Dash _.template options.

options.IIFE

Type: 'Boolean' Default: null

Wrap each precompiled template with an IIFE. If you don't need it simply set this option to false.

Changelog

1.3.0:

  • FEATURE: Added options.IIFE #14

1.0.0:

  • BREAKING: Added support for custom dotted namespaces.

Notes

If you use grunt instead of gulp, but want to perform a similar task, use grunt-contrib-jst.

License

MIT © Emanuele Ingrosso