2016-08-30 65 views
0

我已经在PHP项目中使用了这个Makefile(这是从完整的Makefile中删除的)。我该如何改变这个,让automake检测到public/assets/styles/main.scss已经改变&重新运行sass?Makefile:如果源代码发生变化,重建目标

all: public/assets/styles/styles.css 

public/assets/styles/styles.css: 
    sass public/assets/styles/main.scss > public/assets/styles/styles.css 
+0

您需要设置SCSS文件的依赖。 – tkausl

回答

1

简单地使.scss文件您.css目标的先决条件。作为奖励,避免你的基本路径的重复和使用automatic variables使配方少冗余:

STYLEDIR := public/assets/styles 

all: $(STYLEDIR)/styles.css 

$(STYLEDIR)/styles.css: $(STYLEDIR)/main.scss 
    sass $< > [email protected] 
+0

问题在这里:如果'sass'命令失败,输出仍然被创建。下一次运行会混淆_make_。在makefile中添加一个'DELETE_ON_ERROR:'(你几乎总是希望启用它)。 – bobbogo

相关问题