Интересно, какой идеальный рабочий процесс, если нужно параллельно работать над проектами A, B и C, где A зависит от B и B, зависит от C.Каков идеальный рабочий процесс для работы над A, B & C параллельно, где A зависит от B и B от C?
В настоящее время у меня есть все в одном хранилище, которое ускорило ранний развитие. Так что мой рабочий каталог выглядит следующим образом:
/A/
/A/B
/A/B/C
Так A
это проект, который является движущей силой развития, но это также означает B
и C
находятся параллельно эволютивные.
Однако, я хочу выпустить проекты B
и C
отдельно, а также они весьма полезны для других.
Однако я разорван на то, как это сделать, не разрушая скорость развития. npm
отлично подходит для управления распределением и зависимостями, но во время разработки вы определенно не хотите перемещать временные версии через Интернет, просто чтобы файлы обновлялись в другой папке на вашем компьютере :)
С другой стороны, вы также можете не хотят их вручную копировать. Heck, все это Мне нужно переключить каталоги для работы на B
, а теперь скопируйте его на /A/B
страшно и кажется склонным к ошибкам.
Таким образом, git submodule
выглядел как ответ, поскольку он по существу позволяет именно это: вы сохранили бы свой макет каталога так, как есть. Затем, когда вы вносите изменения в файлы в B
, вы можете напрямую протестировать их в A
без необходимости копировать что-то. И когда вы думаете, что он готов, вы можете просто совершить и нажать из трех разных папок. Все происходит автоматически в трех разных хранилищах. Кажется, что рай все же ненавидит git submodule
по разным причинам.
У меня есть почти такая же проблема при работе с плагинами grunt. У меня есть плагин grunt в его собственном репозитории, а затем, когда я работаю над этим, я должен скопировать его в одном из проектов, где я использую его для управления разработкой. И затем, в конце дня, я скопирую его обратно в рабочий каталог плагина, сделаю коммиты и нажимаю их. Слава богу, я не автор тысяч плагинов grunt, поэтому я могу справиться с этим, но для этого проекта, над которым я сейчас работаю, я определенно хотел бы найти лучшее решение.
Так что, интересно, в чем же ответ?
интересный. Означает ли это, что я могу использовать «npm» даже для указания на зависимости, которые являются репозиториями на моей локальной машине? Таким образом, я мог бы иметь 'package.json' для локальной разработки. Потому что, если я нахожусь в поезде, я не хочу, чтобы мой рабочий процесс ломался, потому что он полагался на рабочее интернет-соединение. – Christoph
Да, вы также можете указать на локальные репозитории: '{ " devDependencies ": { " dependency-a ":" * " } }', затем используйте 'npm link/path/to/dependency-a' – Frederic