Note that there are some explanatory texts on larger screens.

plurals
  1. POBuild tool: Coffeescript/Node project with multiple components
    text
    copied!<p>I'm starting a project at work and was wondering what the best build tool to use would be.</p> <p>The whole thing is written in CoffeeScript, using AngularJS for the client-side and NodeJS for the server.</p> <p>There are several components to the app:</p> <ul> <li>An iPad app</li> <li>An iPhone app (different functionality from the ipad)</li> <li>A CMS for the apps</li> <li>A NodeJS server</li> </ul> <p>There is tons of shared code between all these, again all written in CoffeeScript.</p> <p>I'd like a build tool where I can list which app uses what code (much of it shared) and it would build each app's javascript files into a seperate folder.</p> <p>For example, I would setup a folder called '/compiled/ipad/' which has index.html, and folders for js, css, img, etc. I would list what compiled coffee files I want thrown into /compiled/ipad/js (some of it from /src/shared/*.coffee, some of it from /src/ipad/*.coffee, etc) and what files I want thrown into /compiled/ipad/css. I would want it to be able to easily concatenate files how I want, too.</p> <p>It would also compile my tests, from /src/test/ipad into /compiled/test/ipad/*.js.</p> <p>All my client-side unit tests are written using <a href="https://github.com/vojtajina/testacular" rel="noreferrer">testacular</a> and I'm not sure what I'll write the server-side unit tests in yet.</p> <p>What build tool/configuration is the best approach here? A Makefile? Something like Grunt? I'm honestly new to the whole build scene.</p> <p><strong>edit</strong>: Decided to go with Browserify. You can find my solution to make it work with Angular here: <a href="https://groups.google.com/forum/#!topic/angular/ytoVaikOcCs" rel="noreferrer">https://groups.google.com/forum/#!topic/angular/ytoVaikOcCs</a></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload