我正在使用Node.js并希望将CoffeeScript合并到我的工作流程中。我有两个用例:
require()
CoffeeScript模块 对于案例#1:我可以从.coffee
编译为.js
和require()
.js
模块,作为解决方法。
对于案例#2:现在我eval()
输出coffee-script.compile()
。
有更好,更统一的方法吗?
答案 0 :(得分:94)
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');
答案 1 :(得分: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
。