web-dev-qa-db-fra.com

L'installation d'un package privé à partir de GitHub Package Registry échoue sans trouvé / non autorisé

J'ai créé et publié un paquet privé GitHub. Essayer de l'installer avec du fil au début, je suis confronté au problème suivant:

Que j'essaie avec le fil ou le NPM, il ne peut pas trouver le paquet du tout bien que suivant les étapes exactes documentées par Github ( https://help.github.com/fr/github/maning-packages-with-github- Greffe-Registry/Configuration-NPM-FOR-UTILISATION-UTILISER-REGISTRE-REGISTAGE ).

Mon .yarnrc:

registry "https://npm.pkg.github.com/OWNER"

Avec le fil, il essaie continuellement de chercher le paquet à https://registry.yarnpkg.com/@GITHUB_USERNAME Au lieu du registre que j'ai entré ci-dessus.

remarque: dans .yarnrc Les registres doivent être ajoutés après une syntaxe légèrement différente :

registry "https://npm.pkg.github.com/"

Jusqu'à présent, j'ai commencé à jouer avec un mélange de .npmrc et .yarnrc Configurations mais pas de chance.

-

Modifier (partiellement résolu)

J'ai compris comment accéder à l'emballage, à la fois en utilisant NPM ou - dans mon cas - fil. Maintenant, je fais face à la question d'un Request failed \"401 Unauthorized\" erreur, bien que j'ai ajouté les informations d'identification au-dessus de .yarnrc:

//npm.pkg.github.com/:_authToken=AUTH_TOKEN

Faire la même chose dans .npmrc ne fonctionne pas non plus.

10
Alexei S.

Ce que vous devez faire est de préciser où récupérer chaque colis, avec quelque chose comme celui-ci dans votre fichier .npmrc (je ne connais pas la syntaxe de la fil, mais cela fonctionne avec le fil lorsqu'il lit le fichier .npmrc):

//registry.npmjs.org/:_authToken=<token-npm-read>
//npm.pkg.github.com/:_authToken=<token-github-package-read>
@foo:registry=https://npm.pkg.github.com
@far:registry=https://registry.npmjs.org

Et puis, le fil recherchera @ FOO/MyPackage1 dans Github, où @ Far/MyPackage2 sera recherché dans NPMJS. Le registre par défaut sera conservé pour les autres, tout ce que vous le définissez.

1
Romain Prévost

J'ajoute une réponse ici car après une journée d'essayer différentes variations des solutions ici et ailleurs, j'ai constaté que ma question était autre chose.

Mon problème était que, tandis que npm n'est pas sensible à la casse en ce qui concerne les noms de colis, yarn est quand il s'agit d'authentification! ???? ♂️

Ainsi, en utilisant l'exemple de la solution acceptée ci-dessus:

registry=https://registry.yarnpkg.com/

@GITHUB_USERNAME:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=AUTH_TOKEN
always-auth=true

J'avais besoin d'assurer deux choses:

  1. @GITHUB_USERNAME a besoin Pour correspondre au cas que vous voyez sur GitHub et le nom du package a été publié sous. C'est-à-dire que si votre nom d'utilisateur est Pickle-Rick, vous devez mettre @Pickle-Rick:registry=https://npm.pkg.github.com, ne pas @pickle-rick ou alors @Pickle-rick.

  2. Vous devez faire correspondre ce boîtier dans votre package.json ou votre yarn add commande - quelle que soit votre utilisation. Par exemple:

    "@Pickle-Rick/schwifty": "^1.0.0" dans package.json ou alors yarn add @Pickle-Rick/schwifty.

J'ai trouvé cette solution en creusant yarnProblèmes GITUB .

1
elethan