Requiert () un fichier CoffeeScript à partir d'un fichier JavaScript ou REPL

J'utilise Node.js et je désire incorporer CoffeeScript dans mon flux de travail. J'ai deux cas d'utilisation:

  1. Je veux pouvoir écrire des fichiers JavaScript require() modules CoffeeScript
  2. Je veux pouvoir charger des modules CoffeeScript à partir du noeud REPL

Pour le cas n ° 1: je peux simplement compiler de .coffee à .js et require() le module .js , comme solution de contournement.

Pour le cas n ° 2: À l'heure actuelle, je suis eval() la production de coffee-script.compile() .

Existe-t-il un moyen meilleur et plus unifié de le faire?

Le module coffee-script enregistre son extension une fois qu'il est requis.

 $ echo 'console.log "works"' > module.coffee $ echo ' > require("coffee-script") > require("./module") > ' > test.js $ node test.js works $ node > require('coffee-script'); require('./module') works {} 

Modifier : Ce comportement a changé avec la relation de CoffeeScript 1.7.0. Maintenant, vous devez faire:

 require('coffee-script/register'); 

Une solution plus polyvalente serait d'utiliser un meilleur besoin .

 npm install better-require 

Il vous permet d' require() fichiers CoffeeScript, aucune pré-compilation nécessaire. (Cela vous permet également d' require() un tas d'autres formats de fichiers: CoffeeScript, clojurescript, yaml, xml, etc.)

Dans le cas de CoffeeScript, il requiert simplement le module coffee-script .

 require('better-require')(); var myModule = require('./mymodule.coffee'); var clojurescriptModule = require('./mymodule.cljs'); // etc. 

Divulgation: j'ai écrit better-require .