2016-12-12 3 views
0

Скажем, у меня есть два частных (не доступны через НПМ) проекты: Projecta и projectB, как с помощью Git, как операции РЕПО:Есть ли способ совпадения связанных с npm проектов ветвей git?

ProjectA:

  • Главный проект
  • Javascript, ES6, JSX и т.д. .
  • Использует Webpack для сборки, минификация и т.д.
  • скомпилирован с Вавилонской
  • Включает Babel скомпилированный ProjectB репо/б ранчо в package.json

ProjectB:

  • Javascript, ES6, зависимости Projecta
  • скомпилирована с Бабелем в ES5 совместимого JS

На моем местном окружающая среда, эти проекты связаны с использованием npm link и в среде сборки ProjectB извлекается из репозитория git ProjectA.

То, что я хочу добиться: синхронизаций Git ветвь при построении (Babel/Webpack) Projecta, e.g.:while строительства Projecta Dev филиала принести DEV ветви ProjectB.

Поскольку у package.json нет другого имени, единственным вариантом, который приходит на ум, является сценарий оболочки (поиск и замена имени ветви projectB в package.json проектаA на основе ветки git).

Но, может быть, есть лучший вариант?

ответ

1

Я решил ее с Баш сценариев: до сборки Projecta выполнения этого:

sed -i -e "s/projectB\.git.*/projectB\.git#$BRANCH\",/g" ./package.json 

Это меняет B ветвь проекта для $BRANCH который содержит значение project'a филиала в данный момент.

0

Соединение NPM используется для целей разработки, поэтому вы можете написать один модуль при тестировании его на другом модуле. Например, написание плагина для Express. Вы должны только временно ссылаться на эту работу. В остальное время вы должны использовать фактические dependencies и devDependencies.

Чтобы заблокировать зависимости между модулями, вы должны использовать пакеты из git. Они могут быть нацелены с использованием определенных хэшей хэширования или тегов. Обязательно используйте примечание semver с вашими тэгами, так как это ожидаемый npm.

+0

Это все правда, но не совсем то, что я просил - я думаю, что нет решения моей проблемы. – anytimecoder

Смежные вопросы