grunt-snakeskin
v7.4.1
Published
Using Snakeskin templates with Grunt.
Downloads
9
Readme
grunt-snakeskin
Using Snakeskin templates with Grunt.
Install
npm install grunt-snakeskin --save-dev
Usage
Gruntfile.js
module.exports = function (grunt) {
grunt.initConfig({
snakeskin: {
compile: {
options: {
exec: true,
prettyPrint: true
},
files: {
'html/': ['test/fixtures/*.ss']
}
}
}
});
grunt.loadNpmTasks('grunt-snakeskin');
grunt.registerTask('default', ['snakeskin']);
};
Options
adapter
Type: String
Name of the adaptor, for example:
adapterOptions
Type: Object
Options for the used adaptor.
exec
Type: Boolean
Default: false
If the parameter is set to true
the template will be launched after compiling and the results of it work will be saved.
dext
Type: String
Default: '.html'
Extension of a file with result after template execution (using with exec
).
tpl
Type: String
The name of the executable template (if is set exec
), if the parameter is not specified, then uses the rule:
%fileName% || main || index || Object.keys().sort()[0];
data
Type: ?
Data for the executable template (if is set exec
).
Speed up your build
Do not recompile templates with exec: true
option:
grunt.initConfig({
snakeskin: {
render: {
options: {
exec: true,
},
files: {
// Specify compiled template as source
'html/': ['compiled/*.ss.js']
},
// Additional dependencies for grunt-newer
deps: ['mycode.js']
}
}
});
Compile newer files only
npm install grunt-newer --save-dev
Specify grunt-newer override function in the following way:
var gruntCfg = {
...
newer: {
options: {
override: function(detail, include) {
// Check snakeskin include dependencies
if (detail.task === 'snakeskin' && detail.target.includes('compile')) {
// Build dest path from template source path
var dst = SS_BUILD_DIR + '/' + path.basename(detail.path) + '.js';
if (snakeskin.check(detail.path, dst)) {
return include(true);
}
}
// Check dependencies from target configuration
// detail.config was requested: https://github.com/tschaub/grunt-newer/pull/115
if (detail.config.deps) {
for (var i = 0; i < detail.config.deps.length; i++) {
var fn = detail.config.deps[i];
var ts = fs.statSync(fn).mtime;
var difference = detail.time - ts;
if (difference < this.tolerance) {
console.log(detail.path + ' has a newer dependency ' + fn);
return include(true);
}
}
}
return include();
}
}
},
...
};
License
The MIT License.