Публикация пакетов npm в автономном режиме - PullRequest
0 голосов
/ 08 мая 2018

Я использую TFS 2018, которая находится в автономном режиме и не имеет доступа к nuget.org. Одной из наших задач была координация пакетов npm с открытым исходным кодом между командой разработчиков. С TFS 201 теперь я могу настроить подачу npm в управлении пакетами, что может быть решением. Идея состоит в том, чтобы получить все пакеты npm в ленте.

На данный момент я получил эти пакеты (используя npm install ) в интернет-боксе, а затем перенес их в автономный бокс (копирование всей папки npm-cache). Затем я перебрал бы все пакеты npm и запустил npm publish в мой реестр TFS.

Для большинства пакетов это работает хорошо. Существует ряд пакетов с предварительно опубликованными сценариями или аналогичными ошибками. Я все еще могу получить их в реестре с помощью --force ( npm publish -f ). Однако я не уверен, что это действительно работает, поскольку я не могу установить некоторые из них. Я получаю ENOENT errno -4058. Одним из примеров является желудь репо.

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

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Ответ на мой собственный вопрос здесь, поскольку единственный другой предложенный ответ не отвечал идее получить пакеты в фид пакетов TFS, и остаются в автономном режиме.

Публикация тарболов npm (.tgz) в хранилище пакетов TFS npm работала без сбоев. Принимая во внимание, что раньше я пытался опубликовать, используя пакет, который был в моем кеше. Я нашел конкретный пакет npm ( npm-package-downloader ), который позволил мне загрузить необходимые пакеты npm и их зависимости. Затем я перенес эти tarballs в автономный ящик tfs и опубликовал их, используя npm publish <package>.

Полный рабочий процесс был:

  1. (доступная через Интернет коробка) npm install -global npm-package-downloader
  2. (доступная через Интернет коробка) npmDownload -d -e -a -o "<path>" -p "pkg1 pkg2 etc"
  3. (окно, доступное через Интернет) Zip from # 2 (даже если для npmDownload есть опция zip, она всегда ломается)
  4. (доступный через Интернет ящик) Перевод почтового индекса в автономный ящик
  5. (автономный режим) Распаковать файлы
  6. (автономный ящик) npm set registry <tfs registry>
  7. (автономный режим) Для каждого .tgz npm publish <pkg.tgz>. Обратите внимание, я использовал PowerShell, чтобы сделать это для меня.
0 голосов
/ 09 мая 2018

Во-первых, вы можете настроить агент сборки, который может иметь доступ к Интернету, TFS может быть доступна в интрасети.

Во-вторых, вы можете попытаться изменить каталог по умолчанию npm-cache , содержащий необходимые пакеты, затем установить пакеты через npm-cache .

С другой стороны, вы можете включить пакеты в систему контроля версий.

...