从JavaScript文件或REPL中require()'CoffeeScript文件

我正在使用Node.js,并希望将CoffeeScript整合到我的工作stream程中。 我有两个用例:

  1. 我希望能够编写require() CoffeeScript模块的JavaScript文件
  2. 我希望能够从节点REPL中加载CoffeeScript模块

对于案例#1:我可以从.coffee编译为.jsrequire() .js模块作为解决方法。

对于案例#2:现在我eval() coffee-script.compile()的输出。

有没有更好,更统一的方法来做到这一点?

咖啡脚本模块在需要时注册其扩展名。

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

编辑 :这个行为已经改变了CoffeeScript 1.7.0的转变。 现在你需要做的是:

 require('coffee-script/register'); 

更通用的解决scheme是使用更好的要求 。

 npm install better-require 

它可以让你require() CoffeeScript文件,不需要预编译。 (它也可以让你require()一堆其他文件格式:CoffeeScript,clojurescript,yaml,xml等)

在CoffeeScript的情况下,它只需要coffee-script模块。

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

披露:我写了better-require