開発では、Express サーバーで Coffeescript と Browserify ミドルウェアの両方を使用して、クライアント側の JS を次のように配信します。
app.use browserify mount: '/client.js', entry: './client.coffee', watch: yes
今日、依存関係をアップグレードしていて、browserify v2 Web サイトで次のことに気付きました。
browserify の最悪のアイデアの 1 つである、バンドルをホストするためのアドホックな http サーバー ミドルウェアがついになくなりました。
coffee-script のデフォルトのサポートはなくなりました。プログラムで引き続きコーヒー スクリプトを使用できます。必要なのは、js にコンパイルするか、ソース変換を自分でバンドル パイプラインにフックすることだけです。
これらの削減に同意しない場合は、v2 リファクタリングを使用して、基礎となる新しいライブラリを出発点として使用する方法について独自のビジョンを展開する方がはるかに簡単です。
けっこうだ。
唯一のことは、新しい API のドキュメントを読んだことがありますが、実際に独自のミドルウェアを実装する方法に少し戸惑っています。実際、高速ミドルウェアとしては言うまでもなく、browserify.add()
andを使用して機能する基本的なスタンドアロンの例を取得することさえできません。browserify.bundle()
v1 を引き続き使用することもできますが、このプロジェクトはまだ開発中であるため、依存関係を最新の状態に保ちたいと考えています。どんな提案でも大歓迎です。
アップデート:
私はこれまでのところ持っています:
browserify = require 'browserify'
coffee = require 'coffee-script'
through = require 'through'
app.get '/client.js', (req, res) ->
b = browserify()
b.add './client.coffee'
b.transform (file) ->
write = (buf) ->
data += buf
end = ->
@queue coffee.compile(data)
@queue null
data = ''
return through(write, end)
b.bundle {}, (err, src) ->
res.send src
require './module'
これは機能しますが、以前はそうしなければならないように見えた場合を除きrequire './module.coffee'
ます。これは本当に理想的ではありません。アプリのすべての要件を更新する必要はありません。