相关文章推荐
温柔的墨镜  ·  oracle tnsnames.ora路径 ...·  3 周前    · 
坏坏的板栗  ·  windows报错node: ...·  2 周前    · 
烦恼的哑铃  ·  node js 18以后由于 ...·  2 周前    · 
不敢表白的钱包  ·  node: ...·  2 周前    · 
爱逃课的牛排  ·  java jsp ...·  1 年前    · 
精明的铁链  ·  SSIS ...·  1 年前    · 

Makefile用来调用各种命令做自动化构建工具非常方便。最近在写给Flask项目写Makefile时,需要设置环境变量,却遇到一些小问题。

如果是在全局设置环境变量时很容易:

export FLASK_ENV=dev
export FLASK_DEBUG=1
    @echo $(FLASK_ENV)
    @echo $(FLASK_DEBUG)

运行 make dev 时则返回:

$ make dev

但是如果需要在不同target下设置不同环境变量的话,这样就会有问题了。具体应该这样设置:

dev:export FLASK_ENV=dev dev:export FLASK_DEBUG=1 @echo $(FLASK_ENV) @echo $(FLASK_DEBUG) prod:export FLASK_ENV=prod prod:export FLASK_DEBUG=0 prod: @echo $(FLASK_ENV) @echo $(FLASK_DEBUG)

这样再执行 make dev make prod 时,不同的target下的环境变量就不会干扰了:

$ make dev
$ make prod