I am working on a pretty large node web application and realize that my workflow is suboptimal. The server side code is quite well organized into node modules. However most of the heavy lifting in the application happens on the client side code.
The project consists of jade, less and javascript/coffeescript code. Furthermore there is a bunch of css/js includes from libraries (jQuery, D3, Bootstrap, etc). What I am looking for, but have a hard time to find, is a nice tool chain that helps me organize my project and switch between development and production:
Developing mode: compile jade, less and coffeescript on the fly in node without a need for rebuilding. Include compiled code into the html as separate files. Set some debugging parameters in the server side code.
Production mode: a build script (make/ant) that compiles compresses and combines the code into static html/css/js.
Currently I am doing a lot manually with some node server code for development, and a make file for production, e.g. things like:
cat javascript/*.js > build/client.js
However this is a bit annoying and I am not at all a make/ant expert. Also a source of problems has been that I am maintaining separate html files for development and production, because they include different css/js files.
Is there any good frameworks or example projects that can help me improve my workflow? Google gave me things like hem, buildr.npm, grunt, but I am not quite sure how mature these projects are, and if they really solve my problem or add more complexity.
You can also have a look at brunch, with many plugin support
As per the website it supports the following, you can also add a new plugin if you need to...
I would take a look at grunt. We use it to handle the deployment and testing of our projects.