0

最後の数時間、coffeescript をコンパイルし、要求に応じて .js を提供する最善の方法を見つけようとします。私はrequire.jsを使用していますが、いいえ、requireのコーヒープラグインは答えではなく、奇妙に聞こえます...そして、require.jsを使用しているため、connect-assetsを使用したくありません。だから私は次のようなものを書くことになりました:

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を同じようにコンパイルし始めました.コーヒーとしてdir。

何か助けてください。git などで確認できるプロジェクトのサンプルはありますか? 事前にたくさんありがとう!

または、上記のコードの npm パッケージを公開する必要がありますが、これが最善の選択かどうかはわかりません :)

4

2 に答える 2

0

次に、coffee-middleware npm パッケージを見つけました。3 行のコーヒーを使用してサーバーをコーヒー サービス用に構成する方がクリーンだと思いましたが、.js をコーヒーと同じディレクトリにコンパイルし始めました。

connect-coffee-scriptモジュールはsrcdestオプションの両方を使用するため、ソース ディレクトリは整理されたままです。

実際、コーヒーミドルウェアもそうだと思います。それはREADMEにあります。

于 2013-04-13T17:51:02.473 に答える