Je voudrais récupérer le npm privé à partir du dépôt privé en utilisant des étendues. J'ai défini le .npmrc comme tel.
https://nexus.myco.com/nexus/repository/myco/some-private-npm
J'ai défini le .yarnrc comme tel.
verbose 0.957 Request "https://nexus.myco.com/nexus/repository/@myco:some-private-npm" finished with status code 400.
Mais quand je le fais:
yarn --verbose add @myco:some-private-npm
Cela génère cette erreur:
verbose 0.708 Performing "GET" request to "https://nexus.myco.com/nexus/repository/@myco%2fsome-private-npm". verbose 0.792 Request "https://nexus.myco.com/nexus/repository/@myco%2fsome-private-npm" finished with status code 404.
Quand je le fais:
yarn --verbose add @myco/some-private-npm
Il va à cette URL 400 (Nexus: chemin de dépôt non valide):
registry "https://registry.npmjs.org/" "@myco:registry" "https://nexus.myco.com/nexus/repository/"
Le npm réel se trouve à:
registry=https://registry.npmjs.org/ @myco:registry=https://nexus.myco.com/nexus/repository/
4 Réponses :
Pour ce problème Github pour yarn, essayez d'ajouter une configuration similaire à votre .yarnrc :
registry "https://registry.npmjs.org/" "@myco:registry" "https://nexus.myco.com/nexus/repository/"
À défaut, je recommande de parcourir le problème lié et d'essayer les solutions fournies.
Merci Klaycon, j'ai également traversé le problème de github et je suis très proche de mon problème. J'ai le .yarnrc avec des guillemets, le problème persiste. [la configuration de yarnrc supprimée car le commentaire ne se met pas en forme correctement]
@PH. Avez-vous également essayé d'installer avec un: au lieu de /, c'est-à-dire yarn --verbose add @myco: some-private-npm
?
J'ai essayé mais il jette une erreur 400 Chemin du référentiel invalide. Mise à jour du réel dans le Q.
Je marquerai ceci comme la réponse car c'est la solution la plus proche. Il y en a avec le même problème qui ont ce problème non résolu dans le problème github.
Un autre scénario possible est que l'encodage slash n'est pas vraiment le problème. Vous n'avez tout simplement pas accès à ce référentiel spécifique.
Cela expliquerait le 404, car si vous n'y avez pas accès, pour des raisons de sécurité, c'est comme s'il n'existait pas, vous n'obtiendrez pas de 401.
J'ai trouvé cette page en essayant également d'exécuter npm publish
d'un fichier .tgz dans Github Actions, et en obtenant ce qui suit (champ et package remplacés):
- name: Setup Node.js environment uses: actions/setup-node@v2.1.2 with: node-version: '12' registry-url: 'https://registry.npmjs.org' - name: Publish to npmjs run: | npm install npm run pack npm publish <package tgz> --access public env: NPM_TOKEN: ${{ secrets.NPM_APIKEY }} NODE_AUTH_TOKEN: ${{ secrets.NPM_APIKEY }}
Ce package EST publié, j'ai donc pensé que le% 2f était à l'origine du problème. J'utilisais également NPM_TOKEN comme variable d'environnement, selon documentation npmjs .
Solution:
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/@SCOPE%2fPACKAGE - Not found npm ERR! 404 npm ERR! 404 '@SCOPE/PACKAGE@0.0.5' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
via Documentation Github .
REMARQUE: je ne suis pas sûr que NPM_TOKEN soit toujours requis ici.
J'ai rencontré exactement le même problème il y a quelque temps. vérifiez chez NPM si le niveau d'accès de votre équipe de référentiel est en lecture / écriture. De mon côté, l'équipe dans laquelle j'étais n'avait qu'un niveau d'accès en lecture. La commutation a résolu le problème.
Je suggérerais d'ajouter quelques exemples, commandes, quelques sources sur le sujet. N'oubliez pas que votre réponse peut être utile à plus que la personne demandée.