GNU make lint先决条件

时间:2015-10-06 15:59:35

标签: makefile lint eslint

GNU make manual说:

  

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

如果这就是我想要的怎么办?

例如,如果我有一个名为lint的虚假目标提示app/scripts/main.js,我希望每次make更新时都会运行(变换和缩小){ {1}}?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

更新后的答案:当前的GNU make手册未指定问题中引用的“规则”,而是在forced targets条目中明确指出要使用此规则,其中包括注释:

  

如您所见,以这种方式使用FORCE与使用.PHONY clean具有相同的结果。

     

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