Automation tools are great--they save us time and help us avoid human error. They can do repetitive tasks at a much faster rate and with better precision, which frees us up to do more productive tasks.
I've been looking at both tools and here is my takeaway.
Both have the ability to check for new files, or changes to files, in certain directories and run tasks applicable to them. Once you've set up the processes you want to run and apply them to your existing files, any new/modified files will automatically have the processes applied to them as well.
Gulp and Grunt are both use Node.js and plugins to accomplish the automated tasks you've set up. They both use
.js files to build tasks (i.e.
gulpfile.js for Gulp,
gruntfile.js for Grunt).
Common tasks that both tools can accomplish and/or automate include:
- Compressing image files
- Eliminating debugger and console statements from scripts
- Linting code for errors
- Updating databases
- Each plugin is designed to do one thing very well
- Has 4000+ plugins (at the time of this article)
- Faster than Grunt - uses streams and handles tasks in memory (only one file is written)
- Can process several tasks at the same time
- Relies more on code than configuration (less friendly)
- A plugin can be used to do multiple tasks at the same time
- Has 6000+ plugins (at the time of this article)
- Uses data configuration files similar to JSON
- Need to declare source and destination files for all tasks
- Can process one task at a time
- Relies more on configuration than code (friendlier to a larger number of users)
Which task runner(s) do you use and why?