我有makefile:
jade = ./node_modules/.bin/jade
nlz = ./node_modules/.bin/nlz
build: build/index.js build/index.css build/index.html build/docs.html
build/index.js: $(find client/*.js)
$(nlz) build client/index.js
build/index.css: $(find client/*.css)
$(nlz) build client/index.css
build/index.html: pages/home.jade pages/layout.jade
$(jade) --path pages/home.jade < pages/home.jade > build/index.html
build/docs.html: pages/docs.jade pages/layout.jade
$(jade) --path pages/docs.jade < pages/docs.jade > build/docs.html
node_modules:
npm install
clean:
rm -rf build
.PHONY: clean
但是,当我更新其中一个.js
或.css
个文件时,输入make build
会给我make: Nothing to be done for
build&#39; .`。我做错了什么?
答案 0 :(得分:1)
没有$(find ...)
这样的make函数。
由于它不是一个已知函数,因此make认为它是一个奇怪命名的变量,它从未被设置过,因此没有值:因此,build/index.css
和build/index.js
具有没有先决条件。因此,只要它们存在,它们就会被认为是最新的。
可能你想要:
build/index.js: $(wildcard client/*.js)
$(nlz) build client/index.js
build/index.css: $(wildcard client/*.css)
$(nlz) build client/index.css