【发布时间】:2017-11-21 12:44:18
【问题描述】:
在 Makefile 中使用.env 的最佳方式是什么,即加载该文件并导出make 中子shell 的所有变量?
如果提议的解决方案仅适用于make,那就太好了,例如不使用任何第三方工具。 .env 文件还支持多行变量,例如:
FOO="this\nis\na\nmultiline\nvar"
这就是为什么this solution 可能不够用。
【问题讨论】:
-
include有效。 -
并非如此。在大多数情况下,它可能会正确加载变量,但它不会自动将它们导出为子 shell 中命令的环境,对吧?
-
如果您在谈论 GNU make,可能有一些非常复杂的方法可以使用字符串函数和
$(eval )来实现这一点,但听起来不像好主意。如果您要通过导出这些变量来说明您想要实现的目标,那么可能会有一个更直接的解决方案... -
这个想法是遵循 12 因素应用程序的想法,有一个
.env文件,其中包含构建/部署配置所需的所有环境变量。由于make是协调构建/部署的工具,如果我可以在没有外部工具的情况下轻松使用.env,那就太好了。
标签: makefile environment-variables