【问题标题】:Node build from Makefile only if source changed仅当源更改时才从 Makefile 构建节点
【发布时间】:2015-10-08 04:04:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: node.js makefile


    【解决方案1】:

    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 丢失或早于$(SRCS) 中的文件,则build 目标“已过时”。

    “这个想法是目标文件的内容是根据先决条件中的信息计算出来的,所以如果任何先决条件发生变化,现有目标文件的内容就不再一定有效。”时间> GNU Makefile Rules

    Makefile 规则参考:

    targets : prerequisites 
            recipe
    

    【讨论】:

    • 我试了一下,它仍然每次都在构建,我的SRC = ./src,我需要更具体,即添加一些名称模式吗?
    • 试过了,还是不行,这是我的 Makefile:github.com/Fluidbyte/node-template/blob/master/Makefile
    • 是的,可能是这样。试试 $(wildcard src/*.js)
    • 还是一样,每次都运行构建:(
    • 你试过了吗:build: $(wildcard $(SRC)/*.js)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多