54

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

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

对于案例 #1:我可以从.coffeeto.js和模块编译require().js作为一种解决方法。

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

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

4

2 回答 2

95

coffee-script模块在需要时注册它的扩展。

$ 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');
于 2011-01-22T16:39:59.653 回答
12

更通用的解决方案是使用better-require

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

于 2012-11-01T15:19:08.600 回答