2016-11-15 5 views
2

Я работаю в среде, где artifactory не имеет доступа в Интернет. Мы хотели бы использовать artifactory как реестр и хост npm. Можно ли загружать внешние зависимости и их транзитивные зависимости?Использование artifactory без удаленного репозитория npm

Например: Я нахожусь на компьютере с доступом в Интернет и загруженным веб-пакетом и всеми его зависимостями, используя установку npm. Теперь я перехожу в другую сеть с искусственным доступом и хочу загрузить мою папку node_modules. Это работает?

ответ

3

В дополнение к функциям прокси-кэширования/кеширования Artifactory он также может размещать в нем несколько локальных репозиториев (таких как репозитории npm). Это в основном означает, что вы можете создать npm local repository в Artifactory и развернуть любые пакеты npm * .tgz (ваши зависимости) в этом репозитории, а Artifactory создаст соответствующие метаданные для вашего клиента. Все, что вам нужно сделать, это развернуть соответствующие пакеты и настроить ваши клиенты npm для решения из Artifactory.

+1

Как загрузить webpack и его зависимости как tgz без ручного разрешения всех его зависимостей? – Daniel

+0

@ daniel, мой [ответ] (http://stackoverflow.com/a/43673807/1021714) решает эту проблему, если вы еще этого не сделали. – braza

0

Недавно я создал модуль узла, который должен помочь в решении этой проблемы. Вы даете ему список пакетов, которые вы хотите загрузить, и он будет загружать пакеты со всеми зависимостями в качестве tar.gz. Затем он сохранит их в исходной структуре папок npm и создаст tar.gz со всем внутри.

Затем вы можете взять tar.gz со всеми вашими зависимостями и развернуть его в Artifactory с помощью мастера развертывания. Artifactory Deploy

При развертывании установите флажок «Развернуть как артефакт связки». Это извлечет tar.gz пакетов и загрузит их в репозиторий npm. Artifactory прочитает package.json всех пакетов и загрузит соответствующую информацию, позволяя вам вытаскивать пакеты с npm.

Пакет называется package-bundle, и может быть загружен с помощью НОГО npm install -g package-bundle

Для загрузки пакетов вы можете запустить команду pb bluebird [email protected], который закачает указанные пакеты, и вся необходимую зависимость.