5 个不稳定版本
0.3.1 | 2021 年 11 月 29 日 |
---|---|
0.3.0 | 2021 年 9 月 6 日 |
0.2.1 | 2021 年 3 月 7 日 |
0.2.0 | 2021 年 1 月 10 日 |
0.1.0 | 2020 年 12 月 29 日 |
#842 in 配置
15KB
394 行
DENVER
A dotenv 替代品
动机
假设你在做一个 web 应用程序。你可能有本地开发数据库,一个或多个 dev/staging/prod 数据库,几组 API 密钥等。如果你像我一样,你会使用 dotenv 或 dotenv 或 dotenv 来处理你的本地配置。如果你像我一样,你可能会厌倦每次切换环境时手动编辑你的 .env
文件。《code>denver 是一个小工具,让你不必这样做。
用法
将你希望在所有环境中共享或默认的任何内容放入你的正常 .env
文件中。将你的环境特定内容放入 .$ENV_NAME.env
文件中,例如 .dev.env
,.staging.env
等。使用 denver "$APP" -$ENV_NAME
运行你的应用程序,例如 denver "venv/bin/python flask run" -
。 denver
会合并你的环境变量,并覆盖“较旧的”变量。默认情况下(但请参阅以下内容),.env
被视为“最旧的”变量集,所以如果你在 .env
和 .dev.env
中定义了例如 DATABASE_URL
并传递 -
,将使用 .dev.env
中的值。
环境文件名不区分大小写,因此 denver -e DEV
与 -e dev
具有相同的效果。
高级
您可以通过多次传递 -e $WHATEVER
来合并多个 .env
文件;"较旧" 的规则按照顺序应用,所以 -e staging -e dev
的结果是,任何在 .env
中同时存在于 .staging.env
的内容都会被覆盖,任何在 .staging.env
中同时存在于 .dev.env
的内容也会被覆盖。
您可以通过传递 -l
/--merge-left
来反转这个顺序。
您可以通过传递 -s KEY=VALUE
(或 --set KEY=VALUE
)来临时设置单个值。您可以通过多次传递 -s
来实现。
您可以通过传递 -KEY=ENV_NAME
(或 --from KEY=ENV_NAME
)来从其他环境文件中临时设置单个值。这与 -
的方式相同,但 仅 合并指定的变量。如果提供的环境文件中没有名为 KEY
的变量设置,则不执行任何操作。
待办事项
- 添加
--no-clobber
等。
依赖
~2.3–9.5MB
~82K SLoC