require()'ing a CoffeeScript file from a JavaScript file or REPL
The coffee-script module registers its extension once required.
$ echo 'console.log "works"' > module.coffee$ echo '> require("coffee-script")> require("./module")> ' > test.js$ node test.jsworks$ node> require('coffee-script'); require('./module')works{}
Edit: This behaviour has changed with the relase of CoffeeScript 1.7.0. Now you need to do:
require('coffee-script/register');
A more versatile solution would be to use better-require.
npm install better-require
It lets you require()
CoffeeScript files, no pre-compilation needed. (It also lets you require()
a bunch of other file formats: CoffeeScript, clojurescript, yaml, xml, etc.)
In the case of CoffeeScript, it simply requires the coffee-script
module.
require('better-require')();var myModule = require('./mymodule.coffee');var clojurescriptModule = require('./mymodule.cljs');// etc.
Disclosure: I wrote better-require
.