我有一个节点项目:
-
src中的
.coffeescript
源 - 编译coffeescript输出到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的建议,请分享。
这样的东西可能会起作用。
- 添加
SRCJS = $(wildcard src/*.js)
- 将
LIB = $(SRC:src/%.coffee=lib/%.js)
更改为LIB = $(SRC:src/%.coffee=lib/%.js) $(SRCJS:src/%=lib/%)
-
添加:
lib/%.js: src/%.js @cp $< $@
如果它不起作用(出于某种原因),那么您可能需要使用静态模式规则,但我认为类似上面的规则应该起作用。
我建议您改用Grunt。有一些巧妙的任务可以很好地处理Coffeescapet的编译。喜欢:https://github.com/gruntjs/grunt-contrib-coffee
此外,根据您的需要,Node.js可以在需要时直接处理Coffeescapet。