4

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

4

1 回答 1

10

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

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

或者

start-prod:
    @NODE_ENV=production make start-bare
于 2012-05-10T17:11:03.853 回答