Как использовать отдельную ветку git в качестве зависимости пакета npm в другой соответствующей локальной ветке package.json? - PullRequest
2 голосов
/ 24 мая 2019

Я хочу установить git-репозиторий общего назначения в качестве зависимости в моих разных сервисах.Для разных веток в каждой службе я хочу включить соответствующую ветку common-utility как зависимость в package.json

Я знаю, что могу установить модуль git как зависимость, выполнив

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

npm i git+ssh://git@<gitlab_url>.git#master для конкретной ветви.

, но, используя этот подход, я могу использовать только определенную ветку полезности во всех моих ветках в каждой службе.

Потому что, когда я объединяю две ветви, package.json также обновляется, и в конце каждая ветка имеет ту же ветку полезности, что и зависимость.

Допустим, у меня есть Сервисы, использующие Утилиту в качестве модуля npm.и сервис имеет 2 филиала master и staging

Текущий сценарий

utility#master -> ServiceA#master

utility#master -> ServiceA#staging

Что я на самом деле хочу

utility#master -> ServiceA#master

utility#staging -> ServiceA#staging

Есть ли обходной путь, с помощью которого я могу сохранить соответствующую ветвь в качестве зависимости и даже послеслияние двух ветвей происходит по аналогичной схеме.

1 Ответ

0 голосов
/ 03 июня 2019

Я не думаю, что был бы правильный способ добиться того, что вы сказали, поскольку звучит немного странно, что у вас будет 2 разных текста в одном месте на 2 разных ветках.

Но я думаю, что мог бы предложить 2 решения вашей проблемы, но я хочу четко сказать вам, что я не думаю, что любой из них - хороший подход.1. Можно было бы иметь обе ветви по отдельности и не объединять их обе, а вместо этого объединять ветку изменений или разрабатывать ветви на обеих после внесения изменений.2. Я полагаю, что вам может потребоваться отдельный небольшой проект в вашем репозитории, который проверяет файл env на наличие типа среды и переписывает package.json вашего проекта с любой версией зависимости, которая вам нужна, и запускает скрипт установки.

Подобное обсуждение произошло на github , но, к сожалению, решения не найдено.

...