【问题标题】:How to use separate git branch as npm package dependency in different corresponding local branch package.json?如何在不同的相应本地分支 package.json 中使用单独的 git 分支作为 npm 包依赖项?
【发布时间】:2019-10-10 22:02:54
【问题描述】:

我想在我的不同服务中安装一个通用实用程序 git repo 作为依赖项。对于每个服务上的不同分支,我想在 package.json 中包含相应的 common-utility 分支作为依赖项

我知道我可以安装一个 git 模块作为依赖项

npm i git+ssh://git@<gitlab_url>.git

npm i git+ssh://git@<gitlab_url>.git#master 用于特定分支。

但是使用这种方法,我只能在每个服务的所有分支中使用特定的实用程序分支。

因为当我合并两个分支时,package.json 也会更新,最后每个分支都具有与依赖项相同的实用程序分支。

假设我有一个使用 Utility 作为 npm 模块的服务,并且服务有 2 个分支 masterstaging

当前情景

utility#master -> ServiceA#master

utility#master -> ServiceA#staging

我真正想要的

utility#master -> ServiceA#master

utility#staging -> ServiceA#staging

是否有任何解决方法可以让我将相应的分支保留为依赖项,即使在合并两个分支后它也遵循类似的模式。

【问题讨论】:

    标签: git npm bitbucket githooks


    【解决方案1】:

    我认为没有合适的方法来实现您所说的,因为在 2 个不同的分支上的同一位置有 2 个不同的文本听起来有点奇怪。

    但我想我可以为您的问题提出 2 种解决方案,但我想清楚地提醒您,我认为这两种方法都不是好方法。 1. 一种是分别拥有两个分支而不是合并它们,而是在进行更改后将更改分支或开发分支合并到它们两者上。 2. 我猜你可能需要在你的 repo 中有一个单独的小项目,它检查 env 文件的环境类型,并用你需要的任何版本的依赖项重写你的项目的 package.json 并运行安装脚本。

    github上也有类似的讨论,可惜没有解决。

    【讨论】:

    • 我目前编写了一个脚本,每当我从 git 拉取推送代码并修改 package.json 时,该脚本就会执行,脚本通过 git-hooks 运行。我想知道是否有更好的方法。
    • 我在 github 问题上读到,没有像这样的 npm 内置支持,但它支持 maven 等。所以我猜你的方法或我的方法应该像 hack 一样工作。
    猜你喜欢
    • 2020-03-12
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多