0

私は .coffee ファイルを分けており、すでに Makefile を使用してそれらを複数の対応する .js ファイルにコンパイルしています。私のルール:

tmp/coffee/%.js: src/js/%.coffee
    coffee --compile --output $(@D) $?

次のようになります。

$ make static
coffee --compile --output tmp/coffee/global src/js/global/admin.coffee
coffee --compile --output tmp/coffee/global src/js/global/ads.coffee

ビルド プロセスを最適化して、更新されたすべてのファイルを 1 回でコンパイルするために coffee コンパイラが 1 回呼び出されるようにしたいと考えています。これは、クリーン ビルドにとって特に重要です。

したがって、代わりに次のようになります。

$ make static
coffee --compile --output tmp/coffee/global src/js/global/ads.coffee src/js/global/admin.coffee
4

1 に答える 1

1

あなたはすでに を使用してい$?ます。本当に必要なのは、ターゲットをすべてのファイルに依存させることだけです。別のフラグファイルを保持したい場合があります。たとえば、次のようにします.built

.built: $(wildcard src/js/global/*.coffee)
        coffee --compile --output tmp/coffee/global $?
        touch $@

コードが重複しないように、既存の Makefile をリファクタリングすることをお勧めします。

私はあなたのすべてのファイルがglobalあなたの例のようにあると仮定していますが、既存のコードではありません。複数のサブディレクトリがある場合、それらすべてを一度にコンパイルすることはできません (--outputパラメーターはおそらくそれぞれで異なるはずです)。

于 2012-05-25T08:08:28.940 に答える