Публикация пакетов Github для monorepo как часть организации - PullRequest
5 голосов
/ 06 января 2020

У меня есть Lerna monorepo на Github Enterprise, в котором в настоящее время есть два npm пакета, которые я пытаюсь опубликовать sh в реестре пакетов Github под тем же репо.

Для справки скажем, что они :

  • github.com / mycompany / package-a
  • github.com / mycompany / package-b

Я следовал этим инструкциям: https://help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages#publishing -multiple-packages-to-the-same-repository

Итак, теперь мои 2 пакета. json файлы выглядят следующим образом (обрезаны для форматирования):

"name": "@mycompany/package-a",
"repository": {
    "url": "ssh://git@github.com:mycompany/monorepo.git"
  },
  "publishConfig": {
    "registry": "https://npm.pkg.github.com/"
  },
"name": "@mycompany/package-b",
"repository": {
    "url": "ssh://git@github.com:mycompany/monorepo.git"
  },
  "publishConfig": {
    "registry": "https://npm.pkg.github.com/"
  },

Таким образом, вы можете заметить, что оба они имеют один и тот же URL-адрес для хранилища, как рекомендовано.

Первая проблема: Во-первых, у моей компании уже есть репозитории с именем package-a и package-b. Кажется, что у вас не может быть конфликта имен с пакетом в monorepo и пакетом вне monorepo. ¹

Вторая и более важная проблема: Это не кажется, работает для меня на всех. Я переименовал пакет в соответствующие им файлы package.json, чтобы избежать конфликта имен с package-a-mono и package-b-mono, что я на самом деле не хочу делать, но я просто пытаюсь заставить его работать. Я получаю 404 при попытке запустить либо lerna publish, либо npm publish внутри самих репозиториев. Как будто он на самом деле не пытается прочитать это поле repository.url, так как он говорит вам об изменении.

^ Это оказалось временным или никогда не было проблемой, это было только из-за именования конфликты.

npm publi sh вывод:

npm ERR! code E404
npm ERR! 404 Not Found - PUT https://npm.pkg.github.com/@mycompany%2fpackage-a - The expected resource was not found.

lerna publi sh вывод:

lerna http fetch PUT 404 https://npm.pkg.github.com/mycompany/@mycompany%2fpackage-a 327ms
lerna ERR! E404 The expected resource was not found.

Кто-нибудь сталкивался с этим и нашел решение?

nНа несколько худшей ноте, по какой-то причине, когда я впервые запустил эту программу, она действительно опубликовала sh пакет в monorepo для package-a. Но с тех пор я получаю ошибку lerna ERR! E422 Package "package-a" is already associated with another repository. Ничего не изменилось, и я не смог опубликовать sh другую версию в том же репо.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Проблема заключалась в том, что в организации были репозитории с тем же именем, что и у публикуемого пакета, и это не понравилось.

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

0 голосов
/ 27 января 2020

Я столкнулся с той же проблемой, мне пришлось сгенерировать новый токен личного доступа, который имел больше привилегий. Просто пакет чтения / записи был недостаточен.

...