Jake is a build tool similar to Make and Rake, but written in and for JavaScript. It's a port of Ruby's Rake, which is inspired by the classic Make tool.
Currently it runs on the Narwhal server-side JavaScript platform, but is intended to support any compliant CommonJS system as it matures.
The API is very similar to the Rake API, though with JavaScript syntax.
jake.task(name, [dependencies], [action])
Declares a task called "name", with an optional array of dependent tasks, and optional function to perform.
jake.file(path, [dependencies], [action])
Like task
, but only runs the action if the target file ("name") doesn't exist or was last modified before at least on dependency.
- jake.directory(directoryPath)
- jake.filedir(path, [dependencies], action)
TODO: better API docs
var jake = require("jake");
// prints "default":
jake.task("default", function(t) {
print(t.name());
});
// runs tasks "bar" and "baz"
jake.task("foo", ["bar", "baz"]);
// only runs if "bar" is older than "bar.source" or non-existant
jake.file("bar", ["bar.source"], function() {
// stuff to compile "bar.source" to "bar"
});
// does nothing
jake.task("baz");
# runs "default" task if no task names are given
jake
# runs "bar", "baz" dependent tasks, then "foo" task
jake foo
# runs "bar", "baz", "foo", and "default" tasks
jake foo default