这是我的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
。为什么会这样?
答案 0 :(得分:9)
在makefile目标中,每一行都是一个单独的shell实例,因此在一个环境中设置环境变量不会转移到另一个。而是做类似的事情:
start-prod:
@NODE_ENV=production \
make start-bare
或
start-prod:
@NODE_ENV=production make start-bare