| > it seemed like Grunt was more for front-end developers Grunt is a task runner. It's a general purpose utility, that happens to work well with JavaScript (client and server). Our team first started using Grunt to concat Scala templates prior to compilation (in an old version of Play with an old JVM). Back then, we noticed that concatenating the Scala files reduced the amount of heap used during compilation. Never did figure out why. Later, we started to use Grunt to minify and concat our Backbone code. Currently, we use Grunt for both our server-side Node and client-side Angular. Server-side we use Grunt to: 1.) Restart Node on file change, 2.) Run JSHint against both server-side and client-side JavaScript, 3.) Set some environment vars prior to starting Node, plus a few other small tasks. Client-side we use Grunt to: 1.) Create a production build by minifying and concatenating JS, 2.) Minifying and concatenating CSS, Minifying HTML, plus some other minor tasks. We also use Grunt to run the client and server test suite. Basically, it's common practice to use Grunt (or Gulp, or another task runner) to assist with both client and server-side JS. |