我正在尝试使用Node.JS和Babel为项目构建一个简单的Makefile来转换ES2015。以下是我目前为build
任务所做的事情:
build:
.node_modules/.bin/babel $(SRC) --out-dir $(DIST) --experimental
我很好奇的是,如果$(SRC)
的内容发生变化,我是否可以使用Make的目标进行构建?
答案 0 :(得分:2)
Can I use Make's targets to only build if the contents of $(SRC) have changed?
是强>
在makefile中,有一种简单的方法,它被称为prerequisite
。
试试这个:
build: $(SRCS)
.node_modules/.bin/babel $(SRC) --out-dir $(DIST) --experimental
<强>解释强>
在决定是否运行build
目标时,make会评估build
(目标)是否“过时”。 build
目标是“过期”,如果build
缺失,或者比$(SRCS)中的文件旧。
“我们的想法是根据先决条件中的信息计算目标文件的内容,因此如果任何先决条件发生变化,现有目标文件的内容将不再有效。” GNU Makefile Rules
Makefile规则参考:
targets : prerequisites
recipe