ajsie ajsie - 4 months ago 10
Node.js Question

Use "coffee" instead of "node" command in production

I have an app.js that is running express.js.

I wanna convert the code to coffeescript and thought about to create a app.coffee that I compile to app.js so I can run it with "node app.js".

But then it hit me that I could just write that file in app.coffee and run it with "coffee app.coffee".

Is this a better way? Can I run the server with "coffee" in production?

Answer

Yes you can use coffee command in production. I use it.

I can see two reasons why you would want to use app.js wrapper.

  1. You want to use local installation of CoffeeScript. (different versions between apps)
  2. You want to use the default npm start to launch your server :) See npm help scripts

Oh, and you don't need compile it. You can use a wrapper like this which compiles the coffee file transparently:

server.js:

require('coffee-script').register();
require("./yourcoffeeapp.coffee");

This wrapper technique is especially useful if you want to use CoffeeScript in some hosted environments that does not directly support the CoffeeScript command. Such as Cloud 9 IDE. No need to fiddle with compiled js-files.