仅在源更改时才从Makefile构建节点

时间:2015-07-18 15:27:41

标签: node.js makefile

我正在尝试使用Node.JS和Babel为项目构建一个简单的Makefile来转换ES2015。以下是我目前为build任务所做的事情:

build:
    .node_modules/.bin/babel $(SRC) --out-dir $(DIST) --experimental

我很好奇的是,如果$(SRC)的内容发生变化,我是否可以使用Make的目标进行构建?

1 个答案:

答案 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