【问题标题】:Prevent makefile from recompiling the source files防止 makefile 重新编译源文件
【发布时间】:2012-11-29 04:28:11
【问题描述】:
这是我的生成文件:
STYLES = $(wildcard views/*/*.styl)
CSS = $(STYLES:.styl=.css)
all: $(CSS)
component build
%.css: %.styl
@echo $<
这个示例每次都会编译,因为 CSS 文件不/永远不会存在,因为我正在构建到 /build。如何构建到另一个目录而不重新编译源代码?
谢谢!
【问题讨论】:
标签:
javascript
makefile
stylus
【解决方案1】:
知道了,希望有一些关于清理的建议...
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
【解决方案2】:
我知道您的问题专门针对 makefile,但是您可以考虑使用 grunt.js (https://github.com/gruntjs/grunt-contrib-stylus/) 来构建您的触控笔项目。它基于 javascript 并在 node.js 上运行,并且比使用 make 更容易设置、配置和维护。
另外,您可以使用 grunt 轻松管理整个项目的构建过程,因此如果您需要连接和缩小 javascript,然后在构建后清理临时文件夹,只需添加这些任务...很棒的构建系统。