(but not necessarily found elsewhere)
- Native Sourcemap support: JavaScript and CSS often need these for debugging purposses. Managing this manually tends to be a complete PITA. Also we want a way to globally turn these off, if we need better build time (see next).
- Native Watch & Serve: Setting up a dev environment should be straightforward, as the build tool should support mutliple environments, but also the abbility to watch source files and serve them from itself.
- Lazy: Shouldn't rebuild stuff if it doesn't need to.
- Native concurrency: Detect dependencies and parallelize automatically.
- Good error reporting: Build tools tend to suck in telling you what went wrong.
- Code over configuration: No more 1000LOC+ JSON files please!
- (optional) Opaque file management: I want to specify what files I want in my destination directory, but I don't want to manage intermediary files.
- Support for test-type tasks: Tests need to give users reasonable output, but want to run as fast as possible.
- Easy API, so plugins and whatnot can happen.
- Native Live-Reload: At least for styles.
- make: is lazy
- grunt: ok API, best JS ecosystem
- gulp: is fast, native concurrency (to an extent)
- brocolli: has opaque filesystem, is somewhat lazy
@smcgivern Sure, I consider the building as the main thing. If it can build stuff really well, then you can even plug it into grunt or whatever.
@jasonmelgoza How important is the livereload? I've never quite managed to get it to work (it tends to work better for CSS, anyway, right?)