Dynamic rebuilder for JavaScript projects
Ruby JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



jsrebuild dynamically runs the Jake build tool to rebuild JavaScript projects in development environments.


Jake is often run as part of a website's build process, building JavaScript packages from source files. This often leads to a tedious situation for projects which use Jake, as the developer must continually run the jake command to rebuild their JavaScript files as they make changes to the source code.

The jsrebuild utility provides a solution to this problem: it watches a source directory and rebuilds the project whenever changes are made to the source files, jake.yml config file and the Jakefile helper file.


jsrebuild uses the Cool.io library which depends on libev, a low-level event loop library, so you will need to have libev installed before attempting to install the jsrebuild gem.

jsrebuild is available from RubyGems, so you can install it and its dependencies simply by running

gem install jsrebuild

Running jsrebuild

To watch a particular directory such as ~/projects/mywebapp for changes, just run

jsrebuild ~/projects/mywebapp

The jsrebuild tool takes a number of command-line arguments, allowing you to set options such as the interval at which it checks files for changes, and whether or not to force all the project's packages to be rebuild whenever a change is made.

For a full list of options, run jsrebuild --help.

jsrebuild will happily run daemonised. To shut down the process, simply send it SIGHUP and it will shut down the event loop and exit cleanly.