Опубликовать аддон ember в локальном реестре NPM для сборок разработчиков?

Как я могу поддерживать эти сценарии дополнений NPM/ember?

  • разработчики создают аддон ember A и используют приложение build ember B, которое использует их локальный пакет A
  • разработчики только собирают B, устанавливая A из нашего репозитория интеграции nexus NPM
  • build system строит ember addon A, устанавливаемый в наш репозиторий релизов nexus NPM

Мейвен

  • Рабочий стол разработчика создает пакеты install в локальном репозитории, чтобы использовать их позже в сборке.
  • build system создает пакеты deploy в нашем внутреннем общем репозитории для использования разработчиками, поэтому им не нужно собирать все

НПМ

  • сборки системы сборки могут использовать npm publish --registry http://ourrepo/nexus/.... для публикации в частном реестре
  • десктопные сборки делать????

Мы могли бы использовать DependsOnMe с относительными путями, но это требует от нас установки какого-то правила, по которому сборки работают локально, а на машине сборки — иначе.

Хотя это возможно, я надеюсь, что есть более элегантное решение для этого.

Могу ли я попросить разработчиков создавать пакеты, которые попадают в локальный кеш npm для последующего использования, и если да, то можете ли вы указать мне на эту документацию?

Связанные


person Peter Kahn    schedule 01.08.2016    source источник


Ответы (1)


Поскольку мы используем внешний плагин maven для управления npm и ember, мы можем инкапсулировать дополнительный модуль npm (в данном случае аддон ember) в качестве артефакта maven и использовать управление зависимостями maven для наших различных сценариев.

Модуль Ember Add On

  • добавить 'npm pack' для создания локального пакета в репозитории npm (в нашем случае root/target/tmp/.npm//)
  • добавить сборку для создания tar.gz, содержащего файл tar (немного глупо), и прикрепить его к модулю как артефакт (тип: tar.gz, классификатор: ember-addon)

Клиентский модуль

  • добавить maven-dependency-plugin unpack, который распаковывает классификатор tar.gz модуля расширения: ember-addon to target/ember-addons перед выполнением npm для этого модуля
  • измените package.json, чтобы использовать локальную зависимость «наш-аддон»: «file:../../target/ember-addons///package.tgz»

Если пользователь собирает ember и клиент, то сборка дополнительного модуля помещает артефакт в локальный репозиторий maven. Клиентский модуль распаковывается из локального репозитория и загружается в node_modules через процесс сборки npm ember.

Если пользователь только собирает клиент, то клиентский модуль извлекает артефакт надстройки из нашего репозитория nexus перед фазами распаковки и использования.

person Peter Kahn    schedule 04.08.2016