【问题标题】:Why is NODE_ENV not being set by my makefile?为什么我的 makefile 没有设置 NODE_ENV?
【发布时间】:2012-05-19 07:39:56
【问题描述】:

这是我的 Makefile:

start:
    make start-prod

start-dev:
    @NODE_ENV=development
    make start-bare

start-prod:
    @NODE_ENV=production
    make start-bare

start-bare:
    node src/bootstrap

test:
    @NODE_ENV=test
    mocha --ignore-leaks $(shell find ./test -name \*test.js)

.PHONY: start start-dev start-prod start-bare test

当我运行 make start-dev 时,process.env.NODE_ENV 等于 undefined。为什么会这样?

【问题讨论】:

    标签: node.js makefile environment-variables


    【解决方案1】:

    在 makefile 目标中,每一行都是一个单独的 shell 实例,因此在其中设置环境变量不会转移到另一个。而是执行以下操作:

    start-prod:
        @NODE_ENV=production \
          make start-bare
    

    start-prod:
        @NODE_ENV=production make start-bare
    

    【讨论】:

    • 单独的 shell 实例是否并行运行?
    • Tom,不,它们不是并行运行的。但是,如果您有一个依赖于多个其他规则的规则,并且您正在使用-j/--jobs 开关,那么这些并行运行。
    • 你应该提到你可以在与source相同的shell实例中执行一个目标
    猜你喜欢
    • 2020-03-15
    • 2011-02-14
    • 2011-10-21
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多