防止makefile重新编译源文件

时间:2012-11-29 04:28:11

标签: javascript makefile stylus

这是我的makefile:

STYLES = $(wildcard views/*/*.styl)
CSS = $(STYLES:.styl=.css)

all: $(CSS)
    component build

%.css: %.styl
    @echo $<

此示例将每次编译,因为CSS文件不会/将永远不存在,因为我正在构建/build。如何构建到另一个目录而不是重新编译源?

谢谢!

2 个答案:

答案 0 :(得分:0)

知道了,会喜欢一些关于清理的建议......

STYLUS = node_modules/stylus/bin/stylus
STYLES = $(subst views, , $(wildcard views/*/*.styl))
CSS = $(STYLES:.styl=.css)

all: $(addprefix build, $(CSS))
    component build

build/%.css: views/%.styl
    mkdir -p $(dir $@)
    $(STYLUS) -u nib -o $(dir $@) $<

clean:
    rm -rf build

.PHONY: clean

答案 1 :(得分:-1)

我知道您的问题专门针对makefile,但是您可以考虑使用grunt.js(https://github.com/gruntjs/grunt-contrib-stylus/)来构建您的手写笔项目。它基于javascript并在node.js上运行,并且比使用make更容易设置,配置和维护。

另外,你可以使用grunt轻松管理整个项目的构建过程,所以如果你需要连接和缩小你的javascripts,然后在构建后清理临时文件夹,只需添加那些任务......这是一个漂亮的很棒的构建系统。