0

花最后几个小时试图找出编译coffeescript并根据请求提供.js的最佳方法。我正在使用require.js,不,require 的咖啡插件不是答案,只是听起来很奇怪......而且我不想使用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 文件,编译它们并将它们返回给客户端。但它的代码太多了......然后我找到了coffee-middleware npm包,我认为只使用3行咖啡来配置我的服务器以提供咖啡会更干净,但它刚刚开始将.js编译成相同的dir 作为咖啡。

请提供任何帮助。我可以在 git 上查看任何项目示例吗?非常感谢您提前!

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

4

2 回答 2

0

编译咖啡脚本:

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

如果您使用 Makefile 方法,您可以创建一个用于启动服务器的目标,该目标在启动服务器之前编译咖啡脚本。

于 2013-04-13T17:10:31.493 回答
0

然后我找到了coffee-middleware npm 包,我认为只使用3 行coffee 来配置我的服务器以提供咖啡会更干净,但它刚刚开始将.js 编译到与coffee 相同的目录中。

connect-coffee-script模块同时采用srcdest选项,因此您的源目录保持整洁。

实际上,我也看到了咖啡中间件。它在自述文件中。

于 2013-04-13T17:51:02.473 回答