Github private repo-管理不同环境的包

Github private repo-管理不同环境的包,github,npm,version-control,github-package-registry,Github,Npm,Version Control,Github Package Registry,最近,我们将Db模型(Sequelize)移动到了sperate存储库,并使用Github包发布它 当我们将其移动到sperate存储库时,我们发现需要根据环境安装不同的版本(生产/暂存/开发) 例如: 生产版本需要v1.2 登台需要v1.3等 因为我们希望避免手动进入每个依赖服务并更新所需的版本,所以我们希望使用dist标记来管理它 因为我们将根据环境将package.jsonpull包版本标记为“staging”和“production”,我们希望发布一个新版本,例如将1.3标记为“pr

最近,我们将Db模型(Sequelize)移动到了sperate存储库,并使用Github包发布它

当我们将其移动到sperate存储库时,我们发现需要根据环境安装不同的版本(生产/暂存/开发)
例如:

  • 生产版本需要v1.2
  • 登台需要v1.3等
因为我们希望避免手动进入每个依赖服务并更新所需的版本,所以我们希望使用dist标记来管理它

因为我们将根据环境将
package.json
pull包版本标记为“staging”和“production”,我们希望发布一个新版本,例如将1.3标记为“production”

不幸的是,
dist标记
在GitHub注册表上似乎不受支持,因此我们正在寻找其他方法

有什么建议吗?

如果可能(意味着如果没有敏感信息,尤其是生产参数),您可以将三个单独的文件版本设置为:

  • package.json.dev
  • package.json.stg
  • package.json.prd
这样一来,根据当前的执行环境,就可以从这些文件中的一个生成版本(保持其私有性),而不是生成版本(其中包含正确的值)

例如,每个环境可以有单独的分支,其中包含正确的文件。
生成脚本将使用以下命令确定签出分支的名称:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
这意味着你可以:

  • 仅版本模板文件
    package.json.tpl
  • 以分支命名的版本值文件:
    package.json.dev
    package.json.stg
    :由于它们不同,因此在合并或切换分支时没有合并问题
最后,您将(在a中)注册一个

(来自“”的图像,来自“”)

与模板文件(
package.json.tpl
)关联的
smudge
脚本将(在
git签出时自动)通过查看右侧
版本中的值来生成实际的
package.json
文件。
值文件。
生成的实际
package.json
文件仍然被忽略(被
.gitignore

请参阅“”中的完整示例