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

Tom*_*Tom 2 makefile environment-variables node.js

这是我的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
Run Code Online (Sandbox Code Playgroud)

当我跑的make start-dev时候process.env.NODE_ENV等于undefined.为什么会这样?

Too*_*ate 9

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

start-prod:
    @NODE_ENV=production \
      make start-bare
Run Code Online (Sandbox Code Playgroud)

要么

start-prod:
    @NODE_ENV=production make start-bare
Run Code Online (Sandbox Code Playgroud)