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 ターゲット内では、各行が個別のシェル インスタンスであるため、一方に環境変数を設定しても他方には転送されません。代わりに次のようにします。

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

また

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