最好的方式提供咖啡脚本客户端没有连接资产



花最后几个小时尝试找出编译coffeescript的最佳方法,并根据请求提供.js。我用的是require.js,不,require的咖啡插件不是答案,只是听起来很奇怪…我不想使用连接资产,因为我使用的是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文件,编译它们并将它们返回给客户端。但是代码太多了....然后我找到了coffee-middleware的npm包,我想用3行咖啡来配置我的服务器来提供咖啡服务会更简洁,但它只是开始将。js编译到与coffee相同的目录下。

请帮忙。有什么项目样本可以让我看看git之类的吗?提前感谢你!

或者我将不得不发布上面代码的npm包,我不确定这是否是最好的选择:)

编译coffee-script:

  • 使用咖啡脚本编译器的watch功能。
  • 创建Makefile (make coffee;-)
  • 使用grunt,或任何其他工具。

如果您使用Makefile方法,您可以为启动服务器创建一个目标,该目标在启动服务器之前编译coffeescript。

然后我找到了coffee-middleware的npm包,我想用3行咖啡来配置我的服务器为咖啡服务会更干净,但它只是开始编译。js到与coffee相同的目录。

connect-coffee-script模块同时接受srcdest选项,所以你的源目录保持整洁。

实际上,我看到咖啡中间件也是如此。

最新更新