53 votes

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

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

  1. Je souhaite pouvoir écrire des fichiers JavaScript qui require() Modules CoffeeScript
  2. Je souhaite pouvoir charger des modules CoffeeScript à partir du REPL de node.

Pour le cas n° 1 : Je peux simplement compiler à partir de .coffee a .js y require() les .js comme solution de contournement.

Pour le cas n°2 : Pour l'instant, je suis eval() la sortie de la coffee-script.compile() .

Existe-t-il un meilleur moyen, plus unifié, de procéder ?

94voto

matyr Points 4025

Les café-script enregistre son extension une fois qu'elle est requise.

$ 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
{}

Editer : Ce comportement a changé avec la sortie de CoffeeScript 1.7.0. Vous devez maintenant faire ce qui suit :

require('coffee-script/register');

12voto

Olivier Lalonde Points 3396

Une solution plus polyvalente consisterait à utiliser mieux exiger .

npm install better-require

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

Dans le cas de CoffeeScript, il suffit d'utiliser l'option coffee-script module.

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

Divulgation : J'ai écrit better-require .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X