花费最后几个小时试图找出编译coffeescript的最佳方法,并根据要求提供.js。我正在使用require.js而不是,请求的咖啡插件不是答案,只是听起来很奇怪......而且我不想使用connect-assets,因为我使用的是require.js。所以我最终写了类似的东西:
app.configure 'development', ->
app.get(/.js$/, (req, res, next) ->
script = req.originalUrl.substring(1, req.originalUrl.length - 3)
try
file = "app/assets/javascripts/#{script}.coffee"
cs = fs.readFileSync "#{__dirname}/#{file}", "ascii"
try
js = coffee.compile cs
res.header 'Content-Type', 'application/x-javascript'
res.send(js, 200)
catch e
res.send("Coffee compile error in #{file}\n" + e.stack, {'Content-Type': 'text/plain'}, 500)
catch e
next()
)
app.use(express.static("#{__dirname}/app/assets/javascripts"))
所以我捕获所有.js请求,找到相应的.coffee文件,编译它们并将它们提供给客户端。但它只是很多代码.... 然后我找到了咖啡中间件npm包,我认为只使用3行咖啡配置我的服务器供应咖啡就更干净了,但它刚开始将.js编译成与咖啡相同的目录。
任何帮助请。我可以在git上看到的任何项目样本吗?非常感谢你!
或者我必须发布上面代码的npm包,我不确定是否是最佳选择:)
答案 0 :(得分:0)
编译咖啡脚本:
make coffee
; - )如果你使用Makefile方法,你可以创建一个启动服务器的目标,在启动服务器之前编译coffeescript。
答案 1 :(得分:0)
然后我找到了咖啡中间件npm包,我认为只用3行咖啡配置我的服务器供应咖啡就更干净了,但它刚刚开始将.js编译成与咖啡相同的目录。
connect-coffee-script模块同时选择src
和dest
个选项,因此您的源目录保持整洁。
实际上,我看到coffee-middleware也是如此。它在README中是正确的。