0

我有一个节点项目:

  • .coffeescriptsrc中的源码
  • 编译咖啡脚本输出到lib
  • bin中的 shell 脚本

如何调整我的Makefile,如下所示,将src.js中的文件也复制到lib目录?

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 回答