1 个不稳定版本
0.1.0-beta1 | 2020 年 8 月 2 日 |
---|
#1084 在 开发工具
23KB
321 行
Dotenv 组件
Dotenv 组件解析 .env
文件,使存储在其中的环境变量可通过 std::env
访问。
安装
将依赖项添加到您的 Cargo.toml
[dependencies]
darkweb-dotenv = "^1.0"
使用方法
敏感信息和与环境相关的设置应定义为环境变量(如 十二要素应用 所建议)。使用 .env
文件存储这些环境变量,可以通过将它们保存在一个“标准”位置,并且与您所使用的技术栈无关,来简化开发和 CI 管理。
# .env
DB_USER=root
DB_PASS=pass
通过 Dotenv::load()
在您的应用程序中加载 .env
文件
use darkweb_dotenv::Dotenv;
let mut dotenv = Dotenv::new();
dotenv.load(".env").unwrap();
在您的代码中使用 std::env
访问值
let db_user = std::env::var("DB_USER").unwrap();
load()
方法永远不会覆盖现有的环境变量。如果您需要覆盖它们,请使用 overload()
方法
// ...
dotenv.overload(".env").unwrap();
当您使用 Dotenv 组件时,您可能会注意到,您可能希望根据您正在工作的环境有不同的文件。通常这种情况发生在本地开发或持续集成中,您可能希望为您的 test
和 dev
环境有不同的文件。
您可以使用 Dotenv::load_env()
来简化此过程
// ...
dotenv.load_env(".env", "APP_ENV", "dev").unwrap();
然后,Dotenv 组件将查找正确的 .env
文件以加载。如果定义了环境变量 APP_ENV
,则使用其值来加载特定于环境文件。如果未定义变量,则假定 APP_ENV
为 dev
。
如果存在以下文件,则将加载它们,后者的优先级高于前者
.env
--> 提交的环境默认值.env.local
--> 未提交的文件,带有本地覆盖.env.{APP_ENV}
--> 提交的环境特定默认值.env.{APP_ENV}.local
--> 未提交的环境特定本地覆盖
链接
- 文档:https://docs.rs/darkweb-dotenv
- 仓库:https://github.com/darkwebdesign/rust-dotenv
- 问题追踪:https://github.com/darkwebdesign/rust-dotenv/issues
许可证
Dotenv 使用 MIT 许可证授权 - 详细内容请参阅 LICENSE
文件。
依赖项
~2–3MB
~53K SLoC