gulp-dotjs-compiler
Guide
This compiler is mainly based on vohof's gulp-dot
, with a little modification.
There are something changed:
- supports precompiling into javascript: we can compiler doT templates into javascript
- supports other file extensions: we can use a different file extension, such as
dot
jst
, etc.
DEMO
demo
INSTALL
$ npm install gulp-dotjs-compiler
HOW TO USE
var uglify = require('gulp-uglify'),
concat = require('gulp-concat');
var header = require('gulp-header'),
footer = require('gulp-footer');
var dotCompile = require('gulp-dotjs-compiler');
gulp.task('dot', function () {
var wrapper = moduleWrap('dotTempl');
gulp.src(['./src/templates/**/*.html', '!./src/templates/layout.html'])
.pipe(dotCompile({
def: {xxx: 2222},
dict: 'dotTempl',
layout: './src/templates/layout.html'
}))
.pipe(concat('dotTempl.js'))
.pipe(header(wrapper[0] + 'var dotTempl = {};'))
.pipe(footer('module.exports = dotTempl;' + wrapper[1]))
.pipe(uglify())
.pipe(gulp.dest('./build/'));
});
function moduleWrap(modName) {
var begin = '' +
'!(function(global, factory) {'+
'if (typeof define === \'function\' && (define.cmd || define.amd)) {'+
'define(factory);'+
'} else if (typeof exports !== \'undefined\' && typeof module !== \'undefined\'){'+
'factory(require, exports, module);'+
'} else {'+
'var mod = {'+
'exports: {}'+
'},'+
'require = function(name) {'+
'return global[name];'+
'};'+
'factory(require, mod.exports, mod);'+
'global.' + modName + '= mod.exports;'+
'}'+
'})(this, function(require, exports, module) {',
end = '});'
return [begin, end];
}
LINKS
https://github.com/vohof/gulp-dot
https://github.com/outten45/gulp-dot
https://github.com/kentliau/gulp-dot-precompiler