我的无服务器应用程序有两个阶段:开发(在分支开发上)和主控(在分支主控上)。 它有一个名为 config.js 的文件,如下所示:
API_URL: api.prod.some-server.com
但是当我在 develop
分支/开发阶段环境中时,我希望将“prod”更改为“dev”。
如果我在更改当前分支/dev_stage 时来回更改 API_URL(prod -> dev),那就有点累了。
是否有可能实现自动化?
谢谢
最佳答案
Is there any possible to automate this?
是的:您需要不版本 config.js
(保持其私有(private)),但要生成它(其中包含正确的值)。
生成脚本将确定 checkout 分支的名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
或者(自 Git 2.22, Q2 2019 起)
branch=$(git branch --show-current)
这意味着您可以:
- 版本仅模板文件
config.js.tpl
- 以分支命名的版本值文件:
config.js.dev
,config.js.master
:由于它们不同,所以合并或切换分支时不存在合并问题。
最后,您将(在 .gitattributes
declaration 中)注册一个 content filter driver 。
(图片来自“Customizing Git - Git Attributes ”,来自“Pro Git book ”)
smudge
与模板文件 ( config.js.tpl
) 关联的脚本将生成(在 git checkout
上自动生成)实际的 config.js
通过查看右侧的值来创建文件 config.js.<branch>
值文件。
生成的实际config.js
文件仍然被忽略(由 .gitignore
)。
请参阅“git smudge/clean filter between branches ”中的完整示例。
关于node.js - 根据当前阶段更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58151440/