3 个版本 (重大更新)
0.3.0 | 2024年2月10日 |
---|---|
0.2.0 | 2024年2月9日 |
0.1.0 | 2024年2月6日 |
#94 in 配置
19KB
332 行
activate
以合理的方式管理特定环境的配置。简化您的工作和跨各种设置(如开发、测试、生产等)进行构建的方式。
问题陈述
在不同的环境(如开发、QA、生产等)中运行的代码可能需要不同的配置。常用的解决方案是在构建或运行时加载环境变量或属性文件。但这本身有几个缺点
- 设置环境可能需要一些额外的强制配置,或者更糟糕的是用户设置。
- 在环境之间切换很繁琐。
- 开发者可能必须维护自定义实现和构建脚本。
- 没有好的解决方案来在环境之间切换整个单一代码库。
解决方案
activate
解决了所有这些问题。
- 创建一个
active.toml
文件,并声明性地定义您的环境。 - 加载和卸载环境就像
activate <name>
一样简单,只需activate
就可以停用。 - 无需自定义构建脚本,每个环境都有自己的管理文件/目录和环境变量。
- 使用
activate -r <name>
切换整个单一代码库,所有包含activate.toml
的目录都将切换到<name>
。
示例用法
-
您有资产、数据文件、可执行文件或程序文件,这些文件应在不同的环境中使用,例如 Dev、QA 等。
[dev.links] "app/data" = "path/to/dev/data" [qa.links] "app/data" = "path/to/qa/data"
app/data
被创建并链接到活动环境的文件或目录。 -
您希望在每个环境中使用不同的环境变量。
[dev.env] HOST = "localhost" PORT = 3000 [qa.env] HOST = "178.32.44.2" PORT = 443
在当前 shell 中运行以下命令(这将卸载任何激活的环境)。
eval "$(activate -e <name>)"`
或者您可以选择自己或从应用程序中加载活动
.env
文件,位于.activate/.env
。这对于开发容器也有用。只需将"runArgs": ["--env-file",".activate/.env"]
添加到您的.devcontainer/devcontainer.json
文件中。 -
您正在使用单代码仓库并希望将所有内容切换到特定环境。运行
activate -r <name>
包含
activate.toml
文件的任何目录/子目录(尊重.gitignore
)将切换到<name>
activate.toml 架构
[<ENV_NAME>.env]
<ENV_VAR_NAME> = <ENV_VAR_VALUE>
[<ENV_NAME>.links]
"<LINK_PATH_FROM_ROOT>" = "<SOURCE_PATH_FROM_ROOT>"
安装
cargo install activate
路线图
- 允许同时激活多个环境
- 允许指定进入和离开环境的脚本
- 添加默认环境和shell钩子
依赖项
~6–15MB
~184K SLoC