web-dev-qa-db-fra.com

Publier des packages Github pour un monorepo dans le cadre d'une organisation

J'ai un monorepo Lerna sur Github Enterprise qui contient actuellement deux packages npm que j'essaie de publier dans le registre de packages Github sous le même dépôt.

Pour référence, disons qu'ils sont:

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

J'ai suivi ces instructions: 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

Alors maintenant, mes 2 fichiers package.json ressemblent à ce qui suit (coupé à des fins de formatage):

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

Vous pouvez donc remarquer qu'ils ont tous les deux la même URL pour le référentiel, comme recommandé.

Premier problème: Le premier est que mon entreprise a déjà des dépôts appelés package-a et package-b. Il semble que vous ne pouvez pas avoir de collision de noms avec un paquet dans un monorepo et un paquet en dehors du monorepo.¹

Deuxième problème et plus important:  Cela ne semble pas du tout fonctionner pour moi. J'ai renommé le package dans leur package.json fichiers pour éviter la collision de noms avec package-a-mono et package-b-mono ce que je ne veux pas vraiment faire mais j'essaye juste de le faire fonctionner. J'obtiens un 404 en essayant d'exécuter soit lerna publish ou npm publish à l'intérieur des dépôts eux-mêmes. Comme si on n'essayait pas de lire ça repository.url champ en ce qu'il vous demande de modifier.

^ Cela s'est avéré être temporaire ou n'a jamais été un problème, c'était juste à cause des conflits de noms.

sortie de publication npm:

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

sortie de publication de lerna:

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

Quelqu'un a-t-il rencontré cela et trouvé une solution?

¹Sur une note un peu pire, pour une raison quelconque, la toute première fois que j'ai exécuté ceci, il a en fait publié un package dans le monorepo pour package-a. Mais à partir de là, j'obtiens l'erreur lerna ERR! E422 Package "package-a" is already associated with another repository. Rien n'a changé et je n'ai pas pu publier une autre version dans le même dépôt.

5
MVarrieur

Une autre cause possible de cette erreur (discutée et exclue dans le corps de la question d'origine) est si le champ de dépôt d'un package package.json Ne correspond pas à l'URL git du dépôt - par exemple, si vous avez transféré le dépôt vers une organisation différente, ou renommé le dépôt, mais n'a pas mis à jour package.json de chaque package avec la nouvelle URL.

Le message d'erreur signalera 404 sur https://npm.pkg.github.com/@org/package-name Même si le problème vient de l'URL du référentiel.

(crédit à commentaire de jonas-reif )

0