1

GNUmake手册说:

虚假目标不应该是真实目标文件的先决条件;如果是,则每次make更新该文件时都会运行其配方。

如果那是我想要的呢?

例如,如果我有一个名为lintlints的虚假目标app/scripts/main.js,并且我希望它在每次make更新(transpile & minify)时运行,该dist/scripts/main.js怎么办?

4

2 回答 2

0

我刚刚删除了lint目标并将其配方作为目标配方的第一个命令dist/scripts/main.js

dist/scripts/main.js : app/scripts/main.js
    ./node_modules/.bin/eslint $< && \
    mkdir -p dist/scripts && \
    ./node_modules/.bin/babel $< | \
    ./node_modules/.bin/uglifyjs - --screw-ie8 -o $@ -m -c
于 2015-10-06T16:05:37.820 回答
0

更新的答案:当前的 GNU make 手册没有从问题中指定引用的“规则”,而是明确表示在关于强制目标的条目中使用这个,其中包括一个注释:

如您所见,使用FORCE这种方式与使用.PHONY clean.

使用.PHONY更加明确和高效。但是,其他版本的 make 不支持.PHONY; 因此FORCE出现在许多makefile中

于 2019-12-09T21:20:11.663 回答