Support for executing grunt tasks.
CLI operation is not required to use.
Install with npm:
npm install grunt-runner
assume that directory exists just below executing script file
require('grunt-runner')(__dirname)
,or use alias
require('grunt-runner').run(__dirname)
Default: package.json
{
"name": "grunt-runner-test",
"version": "0.1.0",
"taskList": ["run"],
"configure": {
}
}
####before example for Gruntfile.js, note that underscore is included.
This object is extended for running tasks.
see: lib/task-util.js
var _ = require('grunt-runner')._;
in this case deploy in_ "tasks/run" _directory
module.exports = function(grunt) {
grunt.registerTask('run', 'test for grunt-runner', function() {
...
});
};
var path = require('path'), fs = require('fs'), _ = require('grunt-runner')._;
var taskname = _.taskname(__dirname); // run
module.exports = function(grunt) {
var tmes = 'Grunt Runner test: ' + taskname;
grunt.registerTask(taskname, tmes, _.caught(function() {
gruntRunnerTest(grunt, _.mixedConfigure(grunt, taskname), this);
}, grunt.fail));
};
function gruntRunnerTest(grunt, conf, gtask) {
var line = [], done = gtask.async(), stop = function(e) {
grunt.fail.fatal(e);
}, log = function(m) {
_.util.log('[' + gtask.name + '] ' + m);
};
line.push(function() {
log('done.'), done();
grunt.runner.emit('end');
});
_.micropipe(line);
}