Я начинаю новый проект, используя MEAN Stack. Интерфейс и внешний интерфейс находятся в двух разных хранилищах git, размещенных на bitBucket. Каждый проект/репо имеет свои собственные тесты unit/e2e. Backend - это отличный JSON API, а front-end - это AngularJS SPA. Задача grunt доступна в проекте front-end для вывода оптимизированной/модифицированной версии клиентского кода.
Моя идея состояла в том, чтобы сначала запустить тесты unit/e2e на клиентском коде, затем выполнить задачу "grunt deploy", а затем как-то автоматически зафиксировать результат этой задачи grunt в backend project/git repo, запустить unit тест бэкэнд кода и, наконец, развертывание бэкэнд-проекта на Amazon.
Я не слишком уверен, как настроить такой проект на платформах, таких как Travis или Codeship, поскольку он использует 2 GIT репо вместо одного...
Если у кого-нибудь есть опыт/рекомендации для такой установки, как эта, это было бы очень оценено.
Ура,
Niko
Избегайте ручных решений в максимально возможной степени, например, копирование/запись файлов через репозитории - это приведет только к боли и кошмару обслуживания. Для этого используйте стандартный инструмент.
Стандартный способ обработки зависимостей, подобных этим, - использовать инструмент управления зависимостями. На бэкэнде вы обычно делаете это с помощью npm, о котором вы, вероятно, уже знакомы, - вы, вероятно, используете его для привлечения инструментов построения, таких как Grunt.
При создании приложений на передней панели обычно используется Bower.
С Bower вы определяете файл bower.json
и bower.json
там свои зависимости. В вашем случае вам понадобится файл bower.json
в обоих проектах:
bower.json
определяет имя вашего пакета, версию, ее наиболее важные файлы и т.д.bower.json
файл bower.json
определяет зависимости, т. bower.json
Ваш проект front-end. При определении зависимости от вашего проекта переднего плана вы можете либо указать его на общедоступный пакет из реестра Bower (например, Angular), либо на Git repo (это, вероятно, то, что вы ищете). Вы можете указать его на тег Git (например, #1.2.3
) или на ветку Git (например, #master
). Вам не нужно регистрировать свой пакет в общедоступном реестре Bower, если вы этого не хотите.
Вам нужно будет включить bower install
в качестве дополнительного шага сборки в ваш back-end проект, в идеале после запуска npm install
.
Опять же, старайтесь избегать обходных решений, старайтесь придерживаться стандартных инструментов. Разделение вашей работы на два отдельных репозитория Git прекрасно, это хорошая практика для управления размером проекта - вам просто нужно использовать правильные инструменты, чтобы все было сделано.
Вот несколько руководств для начала работы с Bower: