At 10up we’ve been using Vagrant to power our local development environments for quite some time. It’s proven an indispensable tool when it comes to standardizing our environments and making projects more portable. Also, it has the added benefit of keeping the local system free from resource-hogging applications like MAMP, XAMMP, Apache, MySql, etc.
Last week at jQuery Russia I mentioned our work with Vagrant to some other devs. I was bemoaning the requirement to run a local dev server (recommending WAMP or MAMAP or Mongoose) in order to run the jQuery unit tests. I don’t like cluttering my machine with long-running, heavy applications, so installing PHP or a bundled dev server just to run the unit tests felt like a waste.[ref]You could argue that Vagrant is itself a packaged dev server. It is. Except it’s completely self-contained and you can turn it off with a single command line instruction. No registry keys, no background services. Clean. Simple.[/ref] I told Scott Gonzalez with the jQuery team I was going to sit down and write a Vagrant wrapper for jQuery.
And so I did.
Today I’m submitting a pull request to the jQuery team to add Vagrant support to the project. My patch adds a [cci]Vagrantfile[/cci] to the root of the jQuery environment and a single [cci]/vagrant[/cci] directory containing a provisioning script and the configuration files for PHP and Nginx. When you run [cci]vagrant up[/cci] for the first time, your machine will download a virtual machine, install Nginx and PHP, and automatically configure [cci]http://jquery.dev[/cci] to point to your local jQuery development root.
You can easily spin up a virtual machine when you need to run unit tests, and turn it off just as quickly – freeing system resources and keeping your machine free of the cruft that collects around other local servers. I’m hugely excited about unit testing, so being able to hack on and test jQuery as a go – without flooding my system with a bulky tool like MAMP – is a huge win.
Now that this tool is available, are you ready to switch over to Vagrant for your local dev needs?