require()'ing a CoffeeScript file from a JavaScript file or REPL require()'ing a CoffeeScript file from a JavaScript file or REPL node.js node.js

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.