Опубликовать 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 до фаз распаковки и использования.

Другие вопросы по тегам