grunt-anon-tasks v0.2.2
What is this?
A plugin for Grunt that allows you to create anonymous tasks using grunt.task.then()
.
What's an anonymous task?
A task that you can run without ever calling grunt.registerTask()
manually. Anonymous tasks are extremely useful for (1) completion callbacks and (2) dynamic task configuration.
Table of Contents
Installation
In your terminal:
npm install --save-dev grunt-anon-tasks
In your Gruntfile.js
:
grunt.loadNpmTasks("grunt-anon-tasks")
But I suggest using load-grunt-tasks
:
require("load-grunt-tasks")(grunt) // loads every installed "grunt-*" module
Example
In the example below, the anonymous task runs after clean
completes and before build
starts.
grunt.task .run("clean") .then(function () { grunt.log.writeln(this.name) }) .run("build")
The this
variable in anonymous tasks is the same as in registered tasks.
Descriptions
Debugging is easier when an anonymous task has a description. Of course, this is optional.
grunt.task.then("A description of what I'm doing", function () { // do cool grunty things})
If provided, the description will appear in your terminal (below the message that says Running "anon_x" task
).
Failability
Anonymous tasks can signal failure either synchronously or asynchronously; just like registered tasks.
grunt.task .then(function () { return false // synchronous failure }) .then(function () { var done = this.async() performAsyncOperation(function () { done(false) // asynchronous failure }) })
Lifecycle
Anonymous tasks are deleted after completion; thus, it isn't possible to run the same anonymous task more than once.