为什么我的makefile没有设置NODE_ENV?

时间:2012-05-10 17:07:27

标签: node.js makefile environment-variables

这是我的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。为什么会这样?

1 个答案:

答案 0 :(得分:9)

在makefile目标中,每一行都是一个单独的shell实例,因此在一个环境中设置环境变量不会转移到另一个。而是做类似的事情:

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

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