【问题标题】: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,然后在构建后清理临时文件夹,只需添加这些任务...很棒的构建系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多