node.js - 根据当前阶段更改变量

标签 node.js amazon-web-services gitlab serverless staging

我的无服务器应用程序有两个阶段:开发(在分支开发上)和主控(在分支主控上)。 它有一个名为 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

smudge (图片来自“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/

相关文章:

javascript - 如何在 MongoDB 中创建动态正则表达式?

java - AWS Elastic Beanstalk : access System variables

amazon-web-services - 如何查看在 AWS ELB 后面运行的 SSH 服务器的 SSH 客户端的真实 IP

docker - 将CI Runner连接到Docker网络

docker - DinD gitlab-runner:警告服务Runner-xxx-project-xx-concurrent-x-docker-x可能无法正常启动

node.js - 如何在 node.js/express 中测试受 csrf 保护的端点

javascript - 如何强制特定包的转译

javascript - 通过根据需要旋转数据库或模拟来进行测试?

node.js - 使用来自 node.js 的 AWS SES 在邮件中上传 .jpg 图像附件

python - 在 Hadoop MapReduce 脚本中导入外部库