Grunt 0.4.0 Released: An Emphasis On Modularity
The Grunt team updated their Javascript task runner to version 0.4.0 on February 18th in their ongoing effort to decouple the library into more modular parts.
Tyler Kellen, one of Grunt’s core team members, hopes that by "tearing grunt apart" in 0.4.0, they’ve laid the framework for an extensible and maintainable solution in the long term. By folding both the built-in tasks as well as the grunt command line tool into the package.json file as project dependencies, the team hopes to gain tighter focus across the entire ecosystem -- from its core to its plugin repository. "We’re focusing on modularizing Grunt as much as possible," says Kellen. "We’ve built a lot of powerful utilities -- now that they’ve been proven in the real world, we’re working on breaking some of them into micro libraries."
The trend of parlaying the codebase into discrete, micro bits fits well with the team’s emphasis on the Unix philosophy, an effort manifested in variant forms:
Born out of frustration with the disparate tools available to developers, Kellen says that Ben Alman -- Grunt’s creator -- conceived of Grunt in March of 2012 as a cohesive alternative. "Apparently the developer community agreed," says Kellen. "We’re seeing over 60,000+ downloads of Grunt every month and the number is steadily growing."
These developers include "jQuery, [which is] probably the biggest. Google is using it heavily for Yeoman and AngularJS. Adobe and Twitter are using it for some projects, and LESS is in the process of migrating to Grunt too," says Kellen.
Notable among Grunt use cases is testing. Although the Grunt team hasn’t built any "direct collaboration with any CI providers, Grunt will exit with the correct codes if you use it to run your test-suite and it fails. We’re using TravisCI to run nodeunit tests with Grunt for 40+ repos, including the entire grunt-contrib series of plugins and their associated libraries," Kellen says.
As Grunt matures, it will continue to be modularized, says Kellen, "We will be extracting our file-globbing system into a standalone npm package. We’re also working on a major architectural update to Grunt’s plugin format, called node-task."
Educational Content
Concurrency in Clojure
Stuart Halloway May 17, 2013
Confessions of an Agile Addict
Ole Friis Østergaard May 16, 2013
Web Development: You're Doing It Wrong
Stefan Tilkov May 16, 2013
Programming The Feynman Way
Ben Evans May 15, 2013





Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think