Hacker News new | ask | show | jobs
by jaredhanson 4584 days ago
I lol'd at the title. Just having a Gruntfile is the first smell I notice when looking at a project. Seriously, why take two simple tools and layer a unnecessary "task runner" on top of them?
3 comments

What does your build process look like? What's the tooling, and how do you invoke it? Just curious about alternatives.
I use make. You can see my typical setup for Node packages on GitHub, for example: https://github.com/jaredhanson/locomotive
I use make.
I generally prefer Make as well and I even made the case for Make when Grunt.js was first announced [1]. That said, I did use Grunt on a recent project and it worked out reasonably well. For myself, I'd prefer to keep using Make, but for many teams, Grunt is a reasonable choice.

I chose Grunt because Make generally requires a lot more background knowledge and ongoing discipline. Most Grunt tasks are configured by relatively constrained JSON data, so it's pretty hard for non-experts to muck it up unless they need to write a custom task. A Makefile would have created much greater education burden for me. That's particularly a concern when the team's Make/shell expert has time-limited involvement with the project.

[1]: https://news.ycombinator.com/item?id=3777393

I find having a "standard" way to run tasks enormously beneficial especially when working with developers cross-platform. Whatever OS you are running, just grunt and all is well. :)
It makes sense when you use it with grunt-contrib-watch. Then you just keep it running as you are developing and listen for the error "ding" after a save.
Actually, no. It's very easy to run a watcher which executes any command (like say jshint itself).