0

私はノードプロジェクトを持っています:

  • .coffeescriptsrcのソース
  • libにコンパイルされたcoffeescript出力
  • ビンのシェルスクリプト

以下に示すように、 src内のファイルもlibディレクトリにMakefileコピーするように調整するにはどうすればよいですか?.js

BIN = ./node_modules/.bin
SRC = $(wildcard src/*.coffee)
LIB = $(SRC:src/%.coffee=lib/%.js)

init:
    npm install

clean:
    @rm -r -f $(LIB)

build: $(LIB)

dist: clean init build

lib/%.js: src/%.coffee
    $(call coffeetime)

define coffeetime
    @mkdir -p $(@D)
    $(BIN)/coffee -bcp $< > $@
endef

また、Makefile を改善するためのその他の提案があれば、共有してください。

4

2 に答える 2

3

このようなものがうまくいくかもしれません。

  • 追加SRCJS = $(wildcard src/*.js)
  • に変更LIB = $(SRC:src/%.coffee=lib/%.js)LIB = $(SRC:src/%.coffee=lib/%.js) $(SRCJS:src/%=lib/%)ます。
  • 追加:

    lib/%.js: src/%.js
        @cp $< $@
    

(何らかの理由で)うまくいかない場合は、静的パターンルールを使用する必要があるかもしれませんが、上記のようなものがうまくいくはずです。

于 2013-07-03T11:23:54.263 に答える
-2

代わりに Grunt を使用することをお勧めします。Coffeescript のコンパイルを非常にうまく処理する、すてきなタスクがいくつかあります。のように: https://github.com/gruntjs/grunt-contrib-coffee

また、必要に応じて、Node.js は Coffeescript を直接処理できます。

于 2013-07-03T10:13:19.997 に答える