Опубликовать ember addon в локальном реестре NPM для сборок разработчиков?
Как я могу поддержать эти сценарии аддонов NPM/ember?
- разработчики создают ember addon A и используют приложение build ember B, которое использует свой локальный пакет A
- разработчики только собирают B с установкой A из нашего интеграционного репозитория nexus NPM
- сборка системы сборка ember addon A установка в наш репозиторий nexus NPM
специалист
- рабочий стол разработчика собирает пакеты для установки в локальный репозиторий, который будет использоваться позже в сборке.
- build system собирает пакеты развертывания в нашем внутреннем общем репо для использования разработчиками, поэтому им не нужно собирать все
NPM
- сборка системы сборки может использовать npm publish --registry http://ourrepo/nexus/.... для публикации в личном реестре
- разрабатывать настольные сборки делать????
Мы могли бы использовать DependsOnMe с относительными путями, но это требует от нас установить какое-то правило, при котором сборки работают так или иначе локально, а другие - на машине сборки.
Хотя возможно, я надеюсь, что есть более элегантное решение для этого.
Могу ли я попросить разработчиков сгенерировать пакеты, которые войдут в локальный кэш npm для дальнейшего использования, и если да, то можете ли вы указать мне эту документацию?
связанные с
1 ответ
Поскольку мы используем внешний плагин maven для управления npm и ember, мы можем инкапсулировать дополнительный модуль npm (в данном случае аддон ember) в качестве артефакта maven и использовать управление зависимостями maven для наших различных сценариев.
Ember Add On модуль
- добавьте 'npm pack' для создания локального пакета в репозитории npm (в нашем случае root/target/tmp/.npm//)
- добавить сборку, чтобы сгенерировать tar.gz, содержащий tar-файл (немного глупо), и прикрепить его к модулю как артефакт (тип: tar.gz, classifer: ember-addon)
Клиентский модуль
- добавить распакованный maven-dependency-plugin, который распаковывает классификатор tar.gz модуля addon: ember-addon в target / ember-addons до выполнения npm для этого модуля
- измените package.json для использования локальной зависимости "our-addon": "file:../../target/ember-addons///package.tgz"
Если пользователь собирает ember и client, то сборка модуля addon помещает артефакт в локальный репозиторий maven. Клиентский модуль распаковывается из локального репозитория и загружается в node_modules через процесс сборки npm ember.
Если пользователь только строит клиент, то клиентский модуль выбирает артефакт аддона из нашего хранилища nexus до фаз распаковки и использования.