Very good point for me to think about and dwell on. I have the luxury in our projects to not have to worry about building on other systems because it’s not a typical OSS project where you don’t want to dictate that type of requirement to the larger supporting community.
I still don’t like gulp/grunt because of the imperative nature of the tool and the need for code dependencies for the built-tool to work. For “simple” Node.js projects, I think npm scripts are more than enough. You can get the benefit of incremental build and watching through standard watcher tools like supervisor or watch. I think the problem is more for projects that grow larger and have more dependencies that all need to be taken care of with a certain order. I don’t like capturing all that in code.
If there _is_ a tool out there that helps with that though and is declarative-driven, I’d love to know about it :D. Because I’d like to have my cake and eat it too when it comes to commands, native/lack-of-dependencies, declarative-based, and cross-platform :).