Grunt is a JavaScript task-runner meant to automate simple build-time tasks, such as:
- running NPM / Bower to grab dependencies
- validate java / html files and report errors (jshint)
- obfuscating and optimizing JavaScript and CSS (uglify / minify /concat)
- copying files to an output directory (grunt-copy)
- running test frameworks like Jasmine (Karma / Mocha / Jasmine)
- report test code coverage (istanbul)
- substitute injected dependencies and/or warn of broken injections (ngAnnotate / ngInject)
- generate documentation? (jsdoc)
- running SASS or LESS to generate CSS
- custom build plugins to automate nearly anything!
- ... and many more! See more plugins here!
It is available for download from NPM, which makes available even more tasks/plugins for Grunt.
Useful Tasks
More investigation needed.
See NDS-173 - Getting issue details... STATUS
Alternatives
Gulp
Gulp has become more popular in the recent months and uses a different take on running JavaScript tasks (streams).
While I have not used it myself, it may be a suitable alternative to Grunt if it contains features that Grunt does not.
I will need to investigate the differences between Gulp and Grunt further.