0

下面的代码不起作用,但旨在说明我想要实现的目标。我怎样才能使这段代码工作或者有更好的方法。我想将我所有的 CSS 文件合并到一个文件中,但想确保 BASE_CSS 下的所有文件都在该文件的顶部。

BASE_CSS = %reset.css %reset2.css %reset3.css
IGNORE_CSS = %main.min.css $(BASE_CSS)

CSS_FILES = $(filter-out $(IGNORE_CSS),$(wildcard \
  public/css/*.css \
  public/css/*/*.css \
  public/css/*/*/*.css \
))

minify:
  cat $(BASE_CSS) $(CSS_FILES) > public/css/main.min.css
4

1 回答 1

1

这将做我认为你想要的:

# Note the ":=".
# If we use "=", it will run "find" every time ALL_CSS_FILES is mentioned.
ALL_CSS_FILES := $(shell find public/css -name *.css)

BASE_PATTERN = %reset.css %reset2.css %reset3.css

BASE_CSS = $(filter $(BASE_PATTERN), $(ALL_CSS_FILES))

CSS_FILES = $(filter-out $(BASE_PATTERN) %main.min.css, $(ALL_CSS_FILES))

minify:
        cat $(BASE_CSS) $(CSS_FILES) > public/css/main.min.css                

编辑:
要指定顺序,只需执行以下操作:

BASE_CSS = $(filter %reset.css, $(ALL_CSS_FILES))
BASE_CSS += $(filter %reset2.css, $(ALL_CSS_FILES))
BASE_CSS += $(filter %reset3.css, $(ALL_CSS_FILES))
于 2012-04-11T08:34:50.260 回答