<p>Garn berücksichtigt die Authentifizierungseinstellungen in .npmrc nicht</p>

Erstellt am 14. Sept. 2017  ·  86Kommentare  ·  Quelle: yarnpkg/yarn

Möchten Sie eine Funktion anfordern oder einen Fehler melden?
FEHLER
Wie ist das aktuelle Verhalten?
Garn ehrt nicht .npmrc
Wenn das aktuelle Verhalten ein Fehler ist, geben Sie bitte die Schritte zur Reproduktion an.
Wir benötigen eine Authentifizierung für eines unserer Repositorys. Dazu haben wir die Authentifizierung in .npmrc angegeben. Dies funktionierte bis zu 0,28,4, brach aber in 1,0,0 ein

Was ist das erwartete Verhalten?
Berücksichtigung der Authentifizierungseinstellungen in .npmrc

Bitte geben Sie Ihre node.js, Garn und Betriebssystemversion an.
Dies geschieht nach dem Aufrüsten des Garns auf 1.0.0 / 1.0.1 (habe beide Versionen ausprobiert). Unabhängig von Betriebssystem und NodeJS-Version.

cat-bug help wanted

Hilfreichster Kommentar

Dies wurde im Jahr 2017 gemeldet, es ist jetzt 2019 und dieses Problem besteht immer noch.

Alle 86 Kommentare

Dies sollte in 1.0.2 behoben werden, das gestern veröffentlicht wurde. Kannst du es versuchen?

@BYK Ich habe die gleichen Probleme wie oben und wie am Ende von # 4157 erwähnt. Ich habe versucht , läuft 1.0.2 und schlug mit 404 . Das Laufen auf 0.27.5 funktioniert wie erwartet.

Könnten Sie Ihre npmrc-Datei hier einfügen, damit wir versuchen können, sie zu reproduzieren (offensichtlich Geheimnisse oder andere private Informationen herausarbeiten)?

@KidkArolis beim Versuch, mein Arbeitsverzeichnis so sauber wie möglich zu machen, hat es das Problem irgendwie behoben? 🙃

Schritte, die ich unternommen habe:

  • Löschen Sie yarn.lock und alle yarn-error.log Dateien
  • Löschen Sie node_modules/
  • brew link yarn und yarn --version um sicherzustellen, dass ich bei 1.0.2
  • yarn

Das scheint funktioniert zu haben. Ich werde dies als Benutzerfehler bei mir und meinem Team bezeichnen.

@beardedtim Was ist, wenn Sie jetzt node_modules wegblasen, aber yarn.lock behalten und dann yarn install ausführen? Funktioniert dann alles? Dies ist zum Teil was # 4157 Tracks, kann aber mit dem größeren Problem zusammenhängen?

Ich habe dieses Problem (404 bei Repo mit privatem Gültigkeitsbereich, je nachdem, welche Registrierung ich verwende) für die Garnversionen 1.0.1 und 1.0.2. Version 0.27.5 funktionierte nach dem Löschen einiger Artefakte.

Ich habe alle in https://github.com/yarnpkg/yarn/issues/4157 beschriebenen Problemumgehungen ausprobiert

@stieg Ich werde das später heute versuchen, wenn ich einen freien Moment um das Mittagessen herum bekomme und Ergebnisse

Hat jemand eine Lösung dafür gefunden?

FWIW: Ich habe es versucht mit:

  • Ich wische meine node_modules
  • Wischen von ~/.yarn
  • curl -o- -L https://yarnpkg.com/install.sh | bash zum erneuten Installieren von Garn 1.0.2
  • yarn install - _keine Fehler_, es hat alles fehlerfrei installiert.

Meine ~/.yarnrc :

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://registry.npmjs.org"
email [email protected]
lastUpdateCheck 1505977814820
username some-user
````

And my `~/.npmrc`:

//registry.npmjs.org/:_authToken=a-valid-uuid


The `yarn.lock` references look like this in my particular case:

behoben " https://registry.npmjs.org/@acme/some -module / - / some-module-0.1.1.tgz # valid-git-sha"
`` `

Interessant. Nachdem ich die Registrierung in meine .yarnrc -Datei eingefügt hatte, konnte ich meine Pakete installieren. Ich habe es jedoch entfernt, um zu überprüfen, ob dies der Schuldige war, und es war immer noch erfolgreich (ich habe meinen Cache gelöscht, sodass Yarn ihn herunterladen musste, und es gelang ihm, dies korrekt zu tun).

Ich habe eine Neuinstallation versucht (diesmal Debian, die andere war macOS) und diese Einstellungen in ~/.npmrc und ~/.yarnrc gleich gut funktioniert. (Hinweis: Ich habe nicht npm login oder yarn login ausprobiert.)

Das Schließen als Personen, die dies melden, wurde behoben. Öffnen Sie erneut mit konkreten Reproduktionsschritten, wenn dies für Sie nicht gelöst ist. @Carlosduclos .

@ BYK Ich hatte das gleiche Problem.
Ich habe die Neuinstallation der neuesten Garnversion verwendet.
Und es beginnt zu funktionieren, nachdem ich registry "https://registry.npmjs.org" zu ~/.yarnrc hinzugefügt habe.
Ich denke, es ist ein Fehler und sollte automatisch behoben werden, nicht manuell, wie wir es getan haben.

@BYK Es kann hilfreich sein zu beachten, dass jeder, der "als gelöst gemeldet" hat, die Problemumgehung verwendet hat, um Garn zur Verwendung der Registrierung https://registry.npmjs.org zu zwingen.

Ich denke, es gibt immer noch ein Problem beim Abrufen privater Pakete aus der Registrierung https://registry.yarnpkg.com , und dies ist die Standardregistrierung, die von Garn verwendet wird (ist es immer noch nur ein Reverse-Proxy ? Vielleicht werden Auth-Header nicht berücksichtigt? ).

Konkrete Reproduktionsschritte

  1. Löschen / verschieben Sie Ihre Dateien .npmrc und .yarnrc , damit Garn die Standardkonfiguration verwendet.
  2. Suchen Sie ein Paket, das privat in der npm-Registrierung veröffentlicht wurde.
    1a. Wenn Sie es von derselben Maschine heruntergeladen / veröffentlicht haben, von der Sie das Garn testen, löschen Sie die Caches npm und garn.
  3. Führen Sie npm login oder yarn login , um das Authentifizierungstoken zu füllen.
  4. Versuchen Sie, dieses Paket zu installieren, indem Sie eine beliebige Garnversion nach 0.27.5 .
Erwartete Ergebnisse

Paket wird erfolgreich installiert.

Tatsächliche Ergebnisse
❤ <strong i="26">@up</strong> ➜  REPO git:(master) ★ yarn add @SCOPE/PACKAGE 
yarn add v1.1.0
info No lockfile found.
[1/5] Validating package.json...
[2/5] Resolving packages...
error An unexpected error occurred: "https://registry.npmjs.org/@SCOPE%2fPACKAGE: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/home/katy/dev/REPO/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Wenn Projektbetreuer feststellen, dass die Anweisungen von

Ich stimme @kmoe zu , das zugrunde liegende Problem ist selbst in neueren nicht behoben. Bitte öffnen Sie das Problem erneut. Ja, wir haben eine Problemumgehung, aber Problemumgehung! = Lösung in diesem Fall.

FWIW, dies ist immer noch ein Problem in 1.1.0. Ich habe es gerade überprüft (bin hierher gekommen, um das Problem zu umgehen, nämlich registry "https://registry.npmjs.org" wird zu ~/.yarnrc hinzugefügt)

Ich habe dieses Problem in Garn 1.3.2 und es bricht gerade unsere Builds. Bei Garn 0,27,5 hat es gut funktioniert.

Wir benötigen ein Authentifizierungstoken aus der Datei .npmrc , um Pakete aus unserer privaten Artifactory-Registrierung zu installieren.

Reproduktionsschritte:

  1. Haben Sie eine .npmrc -Datei mit Authentifizierungsinformationen wie:
registry=https://artifactory.mycompany.com/artifactory/api/npm/npm-virtual
_auth = myAuthTokenHere
always-auth = true
email = [email protected]
  1. Führen Sie yarn install
  2. Erhalten Sie einen HTTP 401-Fehler, wenn Garn versucht, Inhalte aus der privaten Registrierung zu installieren:
error An unexpected error occurred: "https://artifactory.mycompany.com/api/npm/npm-virtual/@angular/compiler/-/compiler-4.3.1.tgz: Request failed \"401 Unauthorized\"".

Verwandte: # 4672

@stewx Ich habe auch das gleiche Problem auf 1.3.2. Haben Sie eine Lösung oder einen Weg gefunden, um das Problem zu umgehen?

@ Jamesone Nein, ich habe auf so etwas wie 0.27 herabgestuft. Es ist ein Deal-Breaker für unser Projekt.

@stewx @jamesone
Fügen Sie registry "https://registry.npmjs.org" in Ihre .yarnrc ein und installieren Sie die privaten Pakete neu
Es wird Garn anweisen, direkt mit der npmjs-Registrierung zu arbeiten, und es wird das Problem lösen

Es fühlt sich so falsch an, die Versionssperre bei 0.27.5 zu verwenden, um dieses eine Problem zu umgehen, aber es scheint, dass viele genau das tun oder _ registry config umleiten (obwohl

Wenn häufige Projektmitarbeiter keine Zeit haben, dies kurzfristig zu beheben, wäre jemand bereit, Codebasis-Standorte vorzuschlagen, an denen ein Fix am wahrscheinlichsten erfolgreich ist, in der Hoffnung, dass eine Community-PR eröffnet wird? 🤔

/ cc @kittens @bestander @BYK @arcanis @ Rally25rs @kaylieEB

@Bnaya Wenn Sie "Neuinstallation" sagen, meinen Sie damit, node_modules in Ihrem Projekt zu entfernen oder den Garncache zu löschen?

Garn entfernen Sie Ihr privates Paket; Garn fügen Sie Ihr privates Paket hinzu

Und in der Sperrdatei sehen Sie https://registry.npmjs.org/*** url und nicht https://registry.yarnpkg ***

Ich würde vorschlagen, die .yarnrc neben Ihrer package.json hinzuzufügen

Ich habe es tatsächlich zum Laufen gebracht, indem ich registry "https://registry.npmjs.org" in ~/.yarnrc , dh kein lokales Paket .yarnrc .

Schritte zum Reproduzieren von Fehlern für mich:

  • habe kein modifiziertes ~/.yarnrc
  • neues Projekt erstellen
  • Garn Cache sauber
  • Garn hinzufügen Privatmodul -> scheitern

Wenn ich ~/.yarnrc wie oben erwähnt ändere, erzeugen die Schritte keinen Fehler.

Wenn ich mir einige meiner Projekte anschaue, bei denen es Fehler gibt, sehe ich, dass yarn.lock https://registry.yarnpkg.com/@myscope/mypackage/ . Damit diese Projekte funktionieren, muss ich yarn.lock entfernen und neu generieren, nachdem ich das Update auf ./.yarnrc .

Dies scheint zu erklären, warum manche Menschen immer noch Fehler haben, selbst wenn sie etwas ausprobieren, das für andere funktioniert.

Wie man abschließend löst:

  • füge registry "https://registry.npmjs.org" zu ~ / .yarnrc hinzu
  • Entfernen und regenerieren Sie yarn.lock für fehlgeschlagene Projekte

@TheLudd Regenerating yarn.lock von Grund auf macht seinen Zweck

Stattdessen möchten Projektbetreuer möglicherweise das Suchen / Ersetzen von yarnpkg.com auf npmjs.org in Betracht ziehen, um ihren aktuellen Status der Sperrdatei beizubehalten.

@awkaiser Nun, solange Ihre Tests bestanden sind, können Sie sie
Aber ja, Sie können auch ersetzen suchen.

Die Regel ist aber auch, dass Sie yarn.lock nicht manuell ändern sollten;)

Wenn es immer sicher wäre, die absolut neuesten Pakete zu ziehen, die unseren package.json- Anforderungen entsprechen, würden wir überhaupt keine Sperrdateien benötigen. 😜

Normalerweise sollten wir yarn.lock nicht von Hand ändern, aber dies ist ein Fehler und unterstützt eine Ausnahme von dieser Regel. Das Aktualisieren der Registrierungsspeicherortreferenz durch Suchen und Ersetzen sollte unkompliziert und sicher sein. 🍻

Ich musste nicht meine gesamte Sperrdatei neu generieren.
Nur um die privaten Pakete zu entfernen und zu installieren

@awkaiser oder jemand anderes im Thread - eine Möglichkeit, wie Sie helfen können, besteht darin, ein reproduzierbares Beispiel zu erstellen. ZB basiert es auf diesem Repo https://github.com/KidkArolis/yarn-scopes-issue. Wenn Sie ein Repo erstellen können, bei dem das Ausführen von yarn fehlschlägt (bestimmte Registrierungsantwort, bestimmte Garnkonfiguration, bestimmte package.json usw.), könnte ich auf jeden Fall versuchen, das Problem zu beheben.

Allgemein:

  1. Sie benötigen keine .yarnrc Datei
  2. Sie brauchen .yarnrc , um registry "https://registry.npmjs.org" zu enthalten
  3. Private Module ab registry.npmjs.org sollten funktionieren
  4. Private Module ab custom.registry.org sollten funktionieren

@KidkArolis die Fehler sind zufällig. aber sie sind da.
Wie ich über ein anderes verwandtes Problem geschrieben habe: sein oder ein Problem mit der Garnregistrierung (möglicherweise Caching-Fehler, fehlerhafter Vary-Header auf dem Proxy, was auch immer) oder ein komplexer Randfall innerhalb des Garns, der nur bei der Garnregistrierung auftritt.

Ist das, was @kmoe am 25. September 2017 geschrieben hat, unzureichend? 🤔

Dies führte zur Wiedereröffnung dieses Problems und implizierte die Reproduktion durch Mitwirkende.

@KidkArolis Ich bin mir nicht sicher, wie ich ein reproduzierbares Beispiel in einem Repository erstellen kann, da dies private Module betrifft und daher davon abhängt, wer Garn betreibt, oder? Aber meine Schritte zur Reproduktion des Fehlers sind hier https://github.com/yarnpkg/yarn/issues/4451#issuecomment -355248563 und was @kmoe geschrieben hat, ist auch ausreichend.

Wenn ich versuche, ein privates Paket zu installieren, ohne .yarnrc ändern, beginnt der Fehler, mit dem ich erhalte

Ein unerwarteter Fehler ist aufgetreten: " https://registry.yarnpkg.com

Dies impliziert, dass es in der Garnregistrierung und nicht in npm angezeigt wird. Ist das nicht der Fehler, der diesen Fehler verursacht?

Ok, danke, dass du diese Reproduktionsschritte wieder aufgetaucht bist. Ich werde versuchen, einen Blick darauf zu werfen.

Aus irgendeinem Grund führte das Hinzufügen dieses expliziten Speicherorts zu .npmrc, wo sich meine privaten Pakete befinden, dazu, dass der 404-Fehler bei allen Repos, bei denen dies ein Problem verursachte, nicht mehr auftrat.

@npm-username:registry=https://registry.yarnpkg.com/

Hat jemand ein privates npm-Paket, zu dem er mich hinzufügen könnte? Benutzername: kidkarolis .

Ich habe Probleme, ein bezahltes Konto zu bekommen, aber ihr Abrechnungs- / Kontosystem scheint nicht für mich zu funktionieren (ich bekomme 402 Payment Required , obwohl sie mir berechnet haben: - "). Also, während ich auf npm warte Support, wenn mich jemand zu einem privaten Paket hinzufügt (wenn das überhaupt möglich ist), würde das die Dinge beschleunigen.

Ok, ich denke es war nur ... letztendlich Konsistenz, mein privates npm Konto funktioniert jetzt.

Ich kann das Problem jedoch noch nicht reproduzieren :(

Ich habe die Schritte von @kmoe befolgt :

  1. rm ~/.yarnrc && rm ~/.npmrc
  2. yarn cache clean && npm cache clean --force
  3. npm login
  4. yarn add @scope/pkg

Es lässt sich gut installieren (und nicht, wenn ich nicht npm login ). Mit anderen Worten - funktioniert wie erwartet für mich.

Und nach yarn.lock zu urteilen, durchläuft meine Installation https://registry.yarnpkg.com und scheint wie erwartet auth zu verwenden. Könnte es sein, dass in der Vergangenheit ein Problem auf dem Server aufgetreten ist, das jetzt behoben ist?

Ok, ich denke etwas reproduziert.

Wenn ich <strong i="6">@qubit</strong>:registry=https://registry.npmjs.org/ zu .npmrc hinzufüge, funktioniert die Installation nicht mehr.
Ich denke, diese Zeile wird hinzugefügt, wenn Sie sich mit npm login --scope=@qubit anmelden, und sie wird nicht hinzugefügt, wenn Sie sich nur mit npm login anmelden. Mal sehen, wie man das als nächstes behebt.

@KidkArolis andere übliche Methode zum Festlegen dieser Konfiguration ist:

npm config set <strong i="8">@qubit</strong>:registry https://registry.npmjs.org

Eröffnete ein PR - # 5162 Feedback (oder sogar QA) Willkommen.

@KidkArolis Danke für die PR. Aber ich denke, das Problem liegt nicht nur im Fall "--scope", sondern in einem allgemeineren Fall, in dem ein privates Repo auch öffentliche Pakete mit auth widerspiegelt.

Übrigens, @ bytheway875 , Ihr Trick, https://registry.yarnpkg.com/ als Registrierung zu verwenden, hat bei mir funktioniert.

Meine Situation:

  • Ziel: Installieren Sie private Pakete mit yarn von einer Organisation (@ org-name) auf npmjs.com unter Verwendung einer authToken in einer lokalen .npmrc -Datei während eines CI-Builds (GitLab). also nicht bei npm angemeldet.
  • funktioniert mit npm
  • Keine Probleme auf der Dev-Maschine (Mac), ich kann npm login und yarn einfach funktionieren ODER ich kann von npm abgemeldet sein, aber manuell eine lokale / HOME-Verzeichnis .npmrc -Datei mit erstellen eine einzelne Zeile: //registry.npmjs.org/:_authToken=token und yarn funktionieren einfach (diese zweite Methode könnte aufgrund des lokalen Caches funktionieren, habe nicht versucht, das zu löschen)
  • .yarnrc Trick von oben hat nicht funktioniert

_Die einzige Möglichkeit, dies zum Laufen zu bringen, besteht darin, die folgende lokale .npmrc -Datei zu erstellen, bevor yarn install in CI ausgeführt wird: _

@org-name:registry=https://registry.yarnpkg.com/
always-auth=true
_authToken=token

Ich hatte ein ähnliches Problem mit der Datei .npmrc . Ich musste lediglich die Codierung der Datei .npmrc auf ANSI einstellen (unter Windows können Sie notepad.exe> ​​Speichern unter ... verwenden).
Mit yarn config list können Sie testen, wie Garn den Inhalt Ihrer .npmrc -Datei sieht

Ich kann das nicht mit v1.4.1 . Ich habe ein privates Nexus-Repo und verwende es als Cache / Proxy ( so ). Ich kann anscheinend keine endgültigen Anweisungen finden, daher ist es möglich, dass ich etwas falsch mache. Ich habe hier die yarn config -Syntax und yarn login -Syntax übernommen .

Bearbeiten : Ich hätte erwähnen sollen, dass ich versucht habe, mich zuerst über NPM anzumelden, um die erforderlichen .npmrc bevor ich es mit yarn versuche.

Unten ist genau das, was ich zum Testen mache.

Check Merge Commit (dc705768)

git tag --contains dc705768
v1.4.0
v1.4.1

Konfiguration

Erstellen Sie eine Docker-Datei, um eine konsistente Basisumgebung zum Testen bereitzustellen.

# Build
#  docker build -t yarn-private-registry-test .
# Run
#  docker run -it --rm yarn-private-registry-test

FROM debian:9.3-slim

WORKDIR /projects

RUN apt-get update \
  && apt-get --yes install curl gnupg \
  && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
  && apt-get install --yes nodejs \
  && curl -OL https://github.com/yarnpkg/yarn/releases/download/v1.4.1/yarn_1.4.1_all.deb \
  && find . -name yarn*.deb -exec dpkg --install {} \; \
  && find . -name yarn*.deb -exec rm {} \;

Erstellen Sie ein Docker-Image

docker build -t yarn-private-registry-test .

Garn testen

Tipp : Beenden Sie den Docker-Container weiter und starten Sie ihn neu, um eine saubere Umgebung zu erhalten.

Keine Konfiguration

Stellen Sie sicher, dass die Umgebung funktioniert, indem Sie ein Projekt initialisieren und eine Abhängigkeit hinzufügen, ohne Konfigurationsänderungen vorzunehmen.

Führen Sie Docker Container aus

docker run -it --rm yarn-private-registry-test

Prüfung

Fügen Sie die Abhängigkeit left-pad .

mkdir yarn \
  && cd yarn \
  && yarn init --yes \
  && yarn add left-pad
yarn init v1.4.1
warning The yes flag has been set [...snip...]
success Saved package.json
Done in 0.03s.
yarn add v1.4.1
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
└─ [email protected]
Done in 0.52s.

Private Registry Config

Führen Sie Docker Container aus

docker run -it --rm yarn-private-registry-test

Prüfung

mkdir yarn \
  && cd yarn \
  && yarn init --yes \
  && yarn config set registry https://example.com/repository/npm-group/ \
  && yarn login
yarn init v1.4.1
warning The yes flag has been set [...snip...]
success Saved package.json
Done in 0.03s.
yarn config v1.4.1
success Set "registry" to "https://example.com/repository/npm-group/".
Done in 0.04s.
yarn login v1.4.1
question npm username: myusername
question npm email: [email protected]
Done in 6.25s.

Fügen Sie left-pad Abhängigkeit hinzu.

yarn --verbose add left-pad
yarn add v1.4.1
verbose 0.349 Checking for configuration file "/projects/yarn/.npmrc".
verbose 0.35 Checking for configuration file "/usr/local/share/.npmrc".
verbose 0.35 Checking for configuration file "/usr/etc/npmrc".
verbose 0.352 Checking for configuration file "/root/.npmrc".
verbose 0.353 Checking for configuration file "/projects/yarn/.npmrc".
verbose 0.353 Checking for configuration file "/projects/.npmrc".
verbose 0.355 Checking for configuration file "/projects/yarn/.yarnrc".
verbose 0.355 Checking for configuration file "/usr/local/share/.yarnrc".
verbose 0.357 Found configuration file "/usr/local/share/.yarnrc".
verbose 0.358 Checking for configuration file "/usr/etc/yarnrc".
verbose 0.358 Checking for configuration file "/root/.yarnrc".
verbose 0.359 Checking for configuration file "/projects/yarn/.yarnrc".
verbose 0.359 Checking for configuration file "/projects/.yarnrc".
verbose 0.365 current time: 2018-01-25T21:55:48.886Z
info No lockfile found.
verbose 0.405 Performing "GET" request to "https://yarnpkg.com/latest-version".
[1/4] Resolving packages...
verbose 0.48 Performing "GET" request to "https://example.com/repository/npm-group/left-pad".
verbose 0.52 Request "https://example.com/repository/npm-group/left-pad" finished with status code 401.
verbose 0.522 Error: Couldn't find package "left-pad" on the "npm" registry.
    at new MessageError (/usr/share/yarn/lib/cli.js:186:110)
    at NpmResolver.<anonymous> (/usr/share/yarn/lib/cli.js:50354:15)
    at Generator.next (<anonymous>)
    at step (/usr/share/yarn/lib/cli.js:98:30)
    at /usr/share/yarn/lib/cli.js:109:13
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
error An unexpected error occurred: "Couldn't find package \"left-pad\" on the \"npm\" registry.".
info If you think this is a bug, please open a bug report with the information provided in "/projects/yarn/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
verbose 0.809 Request "https://yarnpkg.com/latest-version" finished with status code 200.

Überprüfen Sie .yarnrc

cat /usr/local/share/.yarnrc
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://example.com/repository/npm-group/"
email [email protected]
lastUpdateCheck 1516917349331
username myusername

NPM testen

Springe direkt zur gewünschten Konfiguration, da diese funktioniert.

Private Registry Config

Führen Sie Docker Container aus

docker run -it --rm yarn-private-registry-test

Prüfung

mkdir npm \
  && cd npm \
  && npm init --yes \
  && npm config set registry https://example.com/repository/npm-group/ \
  && npm login
Wrote to /projects/npm/package.json:

{
  "name": "npm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}


Username: myusername
Password:
Email: (this IS public) [email protected]
Logged in as myusername on https://example.com/repository/npm-group/.

Fügen Sie left-pad Abhängigkeit hinzu.

npm --verbose install left-pad
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli   '/usr/bin/npm',
npm verb cli   '--verbose',
npm verb cli   'install',
npm verb cli   'left-pad' ]
npm info using [email protected]
npm info using [email protected]
npm verb npm-session 0ed36c84804378c8
npm http fetch GET 200 https://example.com/repository/npm-group/left-pad 78ms
npm http fetch GET 200 https://example.com/repository/npm-group/left-pad/-/left-pad-1.2.0.tgz 28ms
npm verb correctMkdir /root/.npm/_locks correctMkdir not in flight; initializing
npm verb makeDirectory /root/.npm/_locks creation not in flight; initializing
npm verb lock using /root/.npm/_locks/staging-2f9f45630e5bbb1a.lock for /projects/npm/node_modules/.staging
npm info lifecycle [email protected]~preinstall: [email protected]
npm info linkStuff [email protected]
npm verb linkBins [email protected]
npm verb linkMans [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm verb unlock done using /root/.npm/_locks/staging-2f9f45630e5bbb1a.lock for /projects/npm/node_modules/.staging
npm verb saving [ { name: 'left-pad', spec: '^1.2.0', save: 'dependencies' } ]
npm info lifecycle undefined~preshrinkwrap: undefined
npm info lifecycle undefined~shrinkwrap: undefined
npm notice created a lockfile as package-lock.json. You should commit this file.
npm info lifecycle undefined~postshrinkwrap: undefined
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

+ [email protected]
added 1 package in 0.398s
npm verb exit [ 0, true ]
npm info

@ryanjaeb Danke für den ausführlichen Bericht. Das einzige, was mir fehlt, um Ihnen zu sagen, was hier möglicherweise schief geht, ist der Inhalt der Dateien ~/.npmrc und ~/.yarnrc . Sie haben Ihr .yarnrc , aber es enthält kein Passwort. Auch ohne .npmrc -Datei zum Vergleich ist es schwierig, das Problem genau zu bestimmen.

Ihr Anwendungsfall sollte in ^ 1.4.0 gut funktionieren, aber es geht nur darum, wie die Konfigurationsdatei aussieht.

Tbh mit dir, ich benutze nie yarn login , ich benutze zuerst npm login und dann yarn . Wenn Sie in Ihrem obigen Beispiel zuerst npm set config registry ... && npm login ausführen und dann add left-pad ausführen, funktioniert das? Wenn npm funktioniert, sollte auch Garn funktionieren. Ich frage mich also, ob der Befehl yarn login kaputt ist.

@KidkArolis Indem yarn login ignorierte und erwartete, dass es nur mit npm login funktioniert, konnte ich einige Fortschritte erzielen. Ich sehe zwei Dinge.

.npmrc

Die Dokumente für npm-login scheinen nicht mit dem übereinzustimmen, was ich tatsächlich in .npmrc sehe. Insbesondere hat das Argument --always-auth für den Befehl npm login keine Auswirkungen auf die Konfiguration, obwohl in den Dokumenten Folgendes angegeben ist:

Kann mit --registry und / oder --scope verwendet werden, z
...
Die registrierungsspezifische Konfiguration von always-auth hat Vorrang vor jeder globalen Konfiguration.

Unabhängig davon, ob ich dieses Argument verwende oder nicht, erhalte ich immer das gleiche .npmrc . Beide:

npm config set registry https://example.com/repository/npm-group/ \
  && npm login --registry=https://example.com/repository/npm-group/

und

npm config set registry https://example.com/repository/npm-group/ \
  && npm login --registry=https://example.com/repository/npm-group/ --always-auth

Produziere dieses .npmrc :

registry=https://example.com/repository/npm-group/
//example.com/repository/npm-group/:_authToken=NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Das Abhören des Datenverkehrs zu meiner Registrierung zeigt, dass NPM das Authentifizierungstoken unabhängig davon sendet:

GET /repository/npm-group/left-pad HTTP/1.1
Host: example.com
user-agent: npm/5.6.0 node/v8.9.4 linux x64
npm-in-ci: false
npm-scope: 
npm-session: c4c14c0b37be7bd5
referer: install left-pad
pacote-req-type: packument
pacote-pkg-id: registry:manifest
accept: application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*
authorization: Bearer NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
accept-encoding: gzip,deflate
X-Forwarded-Proto: https
X-Forwarded-For: 10.10.10.1
X-Forwarded-Host: example.com
X-Forwarded-Server: example.com
Connection: Keep-Alive

Yarn sendet die Token nicht , es sei denn always-auth gesetzt. Durch explizites Setzen des Flags always-auth in .npmrc funktioniert alles wie erwartet.

npm config set always-auth true \
    && cat ~/.npmrc
registry=https://example.com/repository/npm-group/
//example.com/repository/npm-group/:_authToken=NpmToken.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
always-auth=true

Abgesehen davon, dass ich weiß, dass sich das Verhalten zwischen NPM und Garn unterscheidet, bin ich auch nicht vertraut genug, um zu wissen, welches Verhalten korrekt ist.

yarn login

Ich denke, Sie haben vielleicht Recht damit, dass yarn login nicht funktioniert, aber ich habe es nicht ausführlich getestet. Wenn ich .npmrc ignoriere und nur yarn , versuche ich, die NPM-Konfiguration nachzuahmen.

yarn config set registry https://example.com/repository/npm-group/ \
    && yarn config set always-auth true \
    && yarn login

.yarnrc :

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://example.com/repository/npm-group/"
always-auth true
email [email protected]
lastUpdateCheck 1517883362958
username myusername

Egal was ich mache, ich werde nie aufgefordert, mein Passwort einzugeben.

@KidkArolis Für mich funktioniert npm ohne explizite always-auth=true in .npmrc und Garn (1.3.2 oder 1.4.0) nicht. In meinem Fall versuche ich, alle Anfragen in artifactory auf die virtuelle Registrierung zu verweisen. Mit always-auth=true und authToken in .npmrc funktioniert es in 1.3.2 , also nicht klar, was genau in 1.4.0 behoben wurde.

Dies scheint immer noch ein Problem zu sein, insbesondere wenn wir uns mit unserem Nexus-Repo verbinden.

Ich habe verschiedene Ansätze ausprobiert:

  1. Löschen Sie meine ~/.yarnrc vollständig und verlassen Sie sich nur auf das, was in ~/.npmrc .
  2. Mit den Registrierungseinstellungen in ~/.yarnrc herumspielen.

Es scheint, dass Garn nicht den Hash- _auth (z. B. _auth=xyz ) von ~/.npmrc

Versions Information

NPM

npm --version                                                                                                                                                                                                                                                                                                      
5.6.0

Garn

yarn --version
1.5.1

Laufen unter OS X 10.13.2.

NPMRC

Mein ~/.npmrc sieht so aus (einige Einstellungen _Werte_ wurden aus offensichtlichen Gründen weggelassen):

registry=http://nexus-repo:8081/content/repositories/npm-all
init.author.name=Juan Smith
[email protected]
init.author.url=http://nexus-repo:8081/content/repositories/npm/
[email protected]
_auth=BASE64-HASH-USERNAME-PASSWORD
always-auth=true

YARNRC

Mein ~/.yarnrc sieht so aus (wieder offensichtliche Werte weggelassen):

registry "http://nexus-repo:8081/content/repositories/npm-all//"
email [email protected]
lastUpdateCheck 1521495247797
username jsmith

¯_ (ツ) _ / ¯

Ich bin mir nicht sicher, wohin ich von hier aus gehen soll. Es ist nicht ganz klar, was los ist, außer dass alle Garnkonstruktionen auf folgende Weise versagen:

error An unexpected error occurred: "http://nexus-repo:8081/content/groups/npm-all/lru-cache/-/lru-cache-4.1.2.tgz: Request failed \"401 Unauthorized\"".

FWIW, IANADOE (ich bin kein Entwickler), und ich versuche nur, ein Paket zu verwenden, das sich für Elektronenaufbau auf Garn stützt. Dies könnte nur sein, dass ich nicht weiß, wie ich den base64 Benutzernamen | Passwort-Hash für Garn festlegen soll. Ich konnte keine Dokumente finden, die das erklären.

@ezweave Sonatype hat wirklich gute Dokumentation . Dieser Link enthält auch Anweisungen zum Testen, um sicherzustellen, dass Sie die base64-Codierung korrekt ausführen. Persönlich finde ich es am einfachsten, das npm Bearer Token Realm in Nexus zu aktivieren und npm login auf meiner Workstation zu verwenden. Ex:

npm config set registry http://nexus-repo:8081/content/repositories/npm-all
npm login --registry=http://nexus-repo:8081/content/repositories/npm-all --always-auth
npm config set always-auth true

Stellen Sie sicher, dass es mit NPM funktioniert, bevor Sie Yarn ausprobieren. Ich weiß nicht, ob es wichtig ist, aber Sie haben zwei nachgestellte Schrägstriche ( // ) in der .yarnrc -Registrierung.

@ryanjaeb Also , unser Entwicklerteam hat Nexus gesperrt, um _nur_ das LDAP-Reich zu unterstützen. Dies mag der Kern des Problems sein, aber es gibt viele Tools, die auf yarn basieren und die ich nicht verwenden kann, da dies nicht unterstützt zu werden scheint. Ich habe versucht, _auth als Parameter in der entsprechenden Syntax usw. anzuhängen. Nichts scheint zu funktionieren. (FWIW: Die mehrfachen Schrägstriche waren eine angebliche Lösung für ein verwandtes Problem. Ich habe es mit und ohne Erfolg gemacht.)

Kann bestätigen, dass die Garnauthentifizierung mit Nexus fehlerhaft ist. yarn login fordert nicht zur Eingabe eines Kennworts auf, sagt jedoch, dass es erfolgreich angemeldet wurde (dies war nicht der Fall - keine Änderungen an der RC-Datei).

Publish fordert zur Eingabe des Kennworts auf und veröffentlicht, liest jedoch nie aus dem __auth-Token, wo immer es eingestellt ist. Sie müssen sich jedes Mal anmelden. Außerdem können Sie in einem CI-Szenario kein Garn verwenden.

Garn funktioniert nicht innerhalb von CI. Wird das jemals funktionieren?

Dieses Problem sollte durch https://github.com/yarnpkg/yarn/pull/5216 behoben worden sein

Fixes #4157, #4451, #4672, #4119.

und das führte dazu, dass GitHub # 4157 nur automatisch schloss, wenn dieser PR zusammengeführt wurde. Die anderen Probleme sollten wahrscheinlich ebenfalls geschlossen worden sein.

@valscion Dies könnte bei diesen Problemen weiter helfen - https://github.com/yarnpkg/yarn/pull/5322 , aber es rutschte durch die Risse.

Das Hinzufügen eines weiteren Datenpunkts - Garn 1.8.x + schlägt auf meinem Build Agent (VSTS) fehl. Das Zurücksetzen von NUR yarn auf 1.7.x behebt das Problem. Es wird nach der richtigen Registrierung gesucht, aber es werden nicht die Token verwendet, die vom Build-Agenten in .npmrc injiziert werden. Mir ist klar, dass es hier viele Variablen gibt, aber ich dachte, es könnte nützlich sein.

Das lokale Ausführen von 1.9.x, bei dem Token in meinem Benutzer .npmrc gespeichert sind, funktioniert einwandfrei.

1.9.x Version

2018-08-03T21:17:04.9324575Z [command]C:\Windows\system32\cmd.exe /D /S /C "C:\Builds\_tool\yarn\1.9.4\x64\yarn-v1.9.4\bin\yarn.cmd build"
2018-08-03T21:17:05.4481355Z yarn run v1.9.4
2018-08-03T21:17:05.5418442Z $ lerna clean && lerna bootstrap
2018-08-03T21:17:08.3387809Z lerna info version 2.11.0
2018-08-03T21:17:08.3387809Z lerna info versioning independent
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.3856545Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4012821Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4012821Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4169058Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4325326Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.4325326Z lerna info clean removing <REMOVED>
2018-08-03T21:17:08.7606628Z lerna success clean finished
2018-08-03T21:17:09.5145894Z lerna info version 2.11.0
2018-08-03T21:17:09.5145894Z lerna info versioning independent
2018-08-03T21:17:09.5419287Z lerna info Bootstrapping 9 packages
2018-08-03T21:17:09.5419287Z lerna info lifecycle preinstall
2018-08-03T21:17:09.5576221Z lerna info Installing external dependencies
2018-08-03T21:17:12.8857424Z lerna ERR! execute callback with error
2018-08-03T21:17:12.8857424Z lerna ERR! Error: Command failed: yarn install --mutex network:42424 --non-interactive
2018-08-03T21:17:12.8857424Z lerna ERR! warning package.json: No license field
2018-08-03T21:17:12.8857424Z lerna ERR! warning Waiting for the other yarn instance to finish (4048)
2018-08-03T21:17:12.8857424Z lerna ERR! warning Waiting for the other yarn instance to finish (6896)
2018-08-03T21:17:12.8857424Z lerna ERR! warning No license field
2018-08-03T21:17:12.8857424Z lerna ERR! error An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \"401 Unauthorized\"".
2018-08-03T21:17:12.8857424Z lerna ERR! [1/4] Resolving packages...
2018-08-03T21:17:12.8857424Z lerna ERR! [2/4] Fetching packages...
2018-08-03T21:17:12.8857424Z lerna ERR! info If you think this is a bug, please open a bug report with the information provided in "C:\\Builds\\6\\s\\packages\\<REMOVED>\\yarn-error.log".
2018-08-03T21:17:12.8857424Z lerna ERR! info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
2018-08-03T21:17:12.8857424Z lerna ERR! 
2018-08-03T21:17:12.8857424Z lerna ERR!     at Promise.all.then.arr (C:\Builds\6\s\node_modules\lerna\node_modules\execa\index.js:236:11)
2018-08-03T21:17:12.8857424Z lerna ERR!     at <anonymous>
2018-08-03T21:17:12.9482437Z lerna WARN complete Waiting for 1 child process to exit. CTRL-C to exit immediately.
2018-08-03T21:17:13.0732458Z { Error: Command failed: yarn install --mutex network:42424 --non-interactive
2018-08-03T21:17:13.0732458Z warning package.json: No license field
2018-08-03T21:17:13.0732458Z warning Waiting for the other yarn instance to finish (4048)
2018-08-03T21:17:13.0732458Z warning Waiting for the other yarn instance to finish (6896)
2018-08-03T21:17:13.0732458Z warning No license field
2018-08-03T21:17:13.0732458Z error An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \"401 Unauthorized\"".
2018-08-03T21:17:13.0732458Z [1/4] Resolving packages...
2018-08-03T21:17:13.0732458Z [2/4] Fetching packages...
2018-08-03T21:17:13.0732458Z info If you think this is a bug, please open a bug report with the information provided in "C:\\Builds\\6\\s\\packages\\<REMOVED>\\yarn-error.log".
2018-08-03T21:17:13.0732458Z info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
2018-08-03T21:17:13.0732458Z 
2018-08-03T21:17:13.0732458Z     at Promise.all.then.arr (C:\Builds\6\s\node_modules\lerna\node_modules\execa\index.js:236:11)
2018-08-03T21:17:13.0732458Z     at <anonymous>
2018-08-03T21:17:13.0732458Z     at process._tickCallback (internal/process/next_tick.js:188:7)
2018-08-03T21:17:13.0732458Z   code: 1,
2018-08-03T21:17:13.0732458Z   killed: false,
2018-08-03T21:17:13.0732458Z   stdout: '[1/4] Resolving packages...\n[2/4] Fetching packages...\ninfo If you think this is a bug, please open a bug report with the information provided in "C:\\\\Builds\\\\6\\\\s\\\\packages\\\\<REMOVED>\\\\yarn-error.log".\ninfo Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.\n',
2018-08-03T21:17:13.0732458Z   stderr: 'warning package.json: No license field\nwarning Waiting for the other yarn instance to finish (4048)\nwarning Waiting for the other yarn instance to finish (6896)\nwarning No license field\nerror An unexpected error occurred: "<INTERNAL_REGISTRY>/lodash.foreach/-/lodash.foreach-2.3.0.tgz: Request failed \\"401 Unauthorized\\"".\n',
2018-08-03T21:17:13.0732458Z   failed: true,
2018-08-03T21:17:13.0732458Z   signal: null,
2018-08-03T21:17:13.0732458Z   cmd: 'yarn install --mutex network:42424 --non-interactive',
2018-08-03T21:17:13.0732458Z   timedOut: false,
2018-08-03T21:17:13.0732458Z   exitCode: 1 }
2018-08-03T21:17:13.0888721Z error Command failed with exit code 1.
2018-08-03T21:17:13.0888721Z info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

1.7.X Version

2018-08-03T21:33:16.4477199Z [command]C:\Windows\system32\cmd.exe /D /S /C "C:\Builds\_tool\yarn\1.7.0\x64\yarn-v1.7.0\bin\yarn.cmd build"
2018-08-03T21:33:16.9633413Z yarn run v1.7.0
2018-08-03T21:33:17.0727225Z $ lerna clean && lerna bootstrap
2018-08-03T21:33:19.2509802Z lerna info version 2.11.0
2018-08-03T21:33:19.2509802Z lerna info versioning independent
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2666043Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.2978554Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.5478528Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.6728520Z lerna info clean removing <REMOVED>
2018-08-03T21:33:19.8759839Z lerna success clean finished
2018-08-03T21:33:20.5947225Z lerna info version 2.11.0
2018-08-03T21:33:20.5947225Z lerna info versioning independent
2018-08-03T21:33:20.6103497Z lerna info Bootstrapping 9 packages
2018-08-03T21:33:20.6103497Z lerna info lifecycle preinstall
2018-08-03T21:33:20.6415982Z lerna info Installing external dependencies
2018-08-03T21:33:23.1103303Z lerna info Symlinking packages and binaries
2018-08-03T21:33:23.1415791Z lerna info lifecycle postinstall
2018-08-03T21:33:23.1415791Z lerna info lifecycle prepublish
2018-08-03T21:33:23.1415791Z lerna info lifecycle prepare
2018-08-03T21:33:23.1415791Z lerna success Bootstrapped 9 packages
2018-08-03T21:33:23.1572133Z $ ts-node ./build/index.ts
2018-08-03T21:33:58.5218101Z Done in 41.54s.

Hey Leute, ich habe eine Anfrage für die Leute, die diesem Problem folgen und eine private Registrierung verwenden.

Wir ziehen in Betracht , den Hostnamen der Registrierung aus der Sperrdatei zu löschen. Dies würde den Wechsel von einer privaten Registrierung zu einer anderen erleichtern, aber der Nachteil ist, dass alle Registrierungen ähnliche URLs verwenden müssen (da der Hostname nicht Teil der URL wäre, würden wir ihn zur Laufzeit einfach mit der aktiven zusammenführen Aufbau).

Könnten Sie uns bitte helfen, in # 5892 zu bestätigen, dass dieser Workflow für Ihren privaten Registrierungsanbieter funktioniert (oder teilen Sie uns mit, ob dies nicht der Fall ist)? Dies würde uns helfen, das nötige Vertrauen zu gewinnen, um diese Änderung vorzunehmen. Vielen Dank!

Ich habe Probleme mit yarn publish .npmrc wenn ich das Authentifizierungstoken nicht auch von meinem

Versionen

Garn - 1.9.4
npm - 5.5.1

~ / .npmrc

So sieht mein ~/.npmrc aus (mit verschleiertem Token und Registrierung):

registry=http://myprivateregistry.net/
//myprivateregistry.net/:_authToken="myAuthToken"

Ausgabe

Wenn ich yarn publish --noninteractive ausführe, wird folgende Fehlermeldung angezeigt:

yarn publish v1.9.4
[1/4] Bumping version...
info Current version: 2.1.3
[2/4] Logging in...
error No token found and can't prompt for login when running with --non-interactive.
info Visit https://yarnpkg.com/en/docs/cli/publish for documentation about this command.

Debug-Schritte

Ich habe Folgendes vergeblich versucht:

  • Kopieren von ~/.npmrc in ein lokales .npmrc in meinem Projektverzeichnis
  • Führen Sie yarn login mit meinen Anmeldeinformationen aus, bevor Sie yarn publish

Ich habe auch überprüft, dass das Ausführen von npm publish den Authentifizierungsschritt überschreitet (der Versionsschritt schlägt fehl, da ich nicht dieselbe Versionsnummer überschreiben kann. Aus diesem Grund möchte ich yarn publish --non-interactive , da damit beispielsweise README-Änderungen mit derselben Versionsnummer hochgeladen werden können)

Fehlt mir noch etwas? Vielen Dank!

@ liuhelen10 Haben Sie eine .yarnrc -Datei in Ihrem Projekt? Dies funktionierte bei mir mit Token, die in ~/.npmrc gespeichert waren

Beispiel

$ cat .yarnrc 
registry "https://registry.npmjs.org/"

always-auth = true in .npmrc hat den Trick gemacht und bei Verwendung von Yarn keine 401 mehr erhalten.
Was keinen Sinn macht aber was auch immer :)

Dies wurde im Jahr 2017 gemeldet, es ist jetzt 2019 und dieses Problem besteht immer noch.

Einverstanden, das funktioniert immer noch nicht.

.npmrc

always-auth=true
<strong i="7">@somename</strong>:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=[token]

.yarnc

"<strong i="11">@somename</strong>:registry" "https://npm.pkg.github.com/"

Ich erhalte auch eine Fehlermeldung mit npm.pkg.github.com:

Integrity checked failed (none of the specified algorithms are supported

Ich erhalte auch eine Fehlermeldung mit npm.pkg.github.com:

Integrity checked failed (none of the specified algorithms are supported

Das auch bekommen

Ich hatte das gleiche Problem mit Nexus Version 3, löste es jedoch mit dem von @plitex in dieser Ausgabe genannten Ansatz https://github.com/yarnpkg/yarn/issues/3093#issuecomment -317671597.

Fügen Sie diesen Inhalt in die Datei .npmrc . Sie müssen keine Einstellungen in der Datei .yarnrc .

always-auth=true
registry=https://nexus.server.com/repository/npm-group/
//nexus.server.com/repository/npm-group/:_authToken={AUTH_TOKEN}

Garnversion
1.17.3

npm --version
6.10.2

@nbransby , @revmischa : Überprüfen Sie auch das Problem Nr. 7552, möglicherweise ist die Fehlermeldung in diesem Fall korrekt.

Zwei Dinge, die mir geholfen haben:

  1. always-auth = true
  2. rm yarn.lock

Ich bekam diesen Fehler auf Garn 1.19.1. Bevor dieses Garn die Registrierungs- und Token-Informationen von .npmrc korrekt zu erfassen schien, musste ich mit 1.19.1 auch registry Konfiguration in .yarnrc hinzufügen, sonst ich habe gerade 401 Fehler bekommen.

Sobald dies erledigt war, funktionierte es und holte den Token weiter von .npmrc . Scheint mir eine Regression zu sein - es scheint keinen guten Grund zu geben, die Registrierungskonfiguration von .npmrc auf .yarnrc zu replizieren.

Wie bei @rocketraman habe ich nach der Installation von Garn 1.19.1 npm install funktioniert gut.

Herabgestuftes Garn und alles funktioniert wieder:

curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.17.3

kann bestätigen, dass dies NOCH ein Problem ist

Beim Ausführen von yarn install 401 Fehler

Request "https://npm.pkg.github.com/user/@scope/package" finished with status code 401.

Dabei läuft npn install Ausgabe

Ich habe die letzten 2 Stunden damit verbracht, dieses Problem zu beheben , und dank meines Freundes

Teilen Sie hier für alle, die mit ähnlichen Problemen zu kämpfen haben.

Anwendungsfall

Ich stelle ein Projekt bereit, das yarn Arbeitsbereiche für Heroku verwendet. Selbst wenn ich yarn.lock lasse und npm install , wird das Projekt mit Arbeitsbereichen erstellt und funktioniert ohne yarn .

Das Projekt basiert auf Paketen, die auf GitHub- Paketen gehostet werden, und muss sich über ein Token bei

Das Problem

Heroku würde ein yarn.lock und Abhängigkeiten mit yarn installieren, wodurch eine ~/.npmrc -Datei, die ich vor dem Build erstellt habe, ignoriert würde.

Vorab würde ich laufen

echo "always-auth=true\n//npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN}\" >> ~/.npmrc",

Dadurch wird eine Datei mit dem Inhalt ~/.npmrc :

always-auth=true
//npm.pkg.github.com/:_authToken=whatevermytokenis

yarn würde dies sofort ignorieren und fehlschlagen, wenn versucht wird, eine Abhängigkeit aus der GitHub-Paketregistrierung mit 401 Unauthorized .

Die Problemumgehung

Andrei erwähnte das Aliasing _just the org_, um die GitHub-Registrierung zu verwenden, und _then_ das Hinzufügen des GitHub-Registrierungstokens unter.

Ändern Sie im Wesentlichen die Datei ~/.npmrc geringfügig, um Folgendes hinzuzufügen:

always-auth=true
+<strong i="36">@MY_ORG</strong>:registry=https://npm.pkg.github.com/

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

Das löste alles und plötzlich verwendete yarn das bereitgestellte Authentifizierungstoken für npm.pkg.github.com für alle Pakete unter @MY_ORG die die GitHub-Organisation waren.

Wütend! Ich hoffe das hilft jemandem! 💞

Dies ist immer noch ein Problem! Die NPM-Installation läuft ohne Probleme, Garn hinzufügen
error Couldn't find package "@diligentcorp/atlas-react" on the "npm" registry. info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Auf meinem Windows-Computer bestand das Problem darin, dass sich der Benutzerordner mit der .npmrc-Datei auf Benutzerebene auf einem Netzwerklaufwerk befand. Der lokale Benutzerordner auf dem Computer hatte keine .npmrc-Datei, aber Garn scheint in diesem Ordner zu suchen. Das Kopieren der .npmrc vom Netzlaufwerk in den lokalen Benutzerordner hat das Problem behoben (ein Authentifizierungstoken wurde in der Benutzerebene .npmrc gespeichert).

Ich habe das zufällig entdeckt, nachdem ich "cd ~" in meine Git-Bash eingegeben habe und es in den Remote-Home-Ordner gewechselt ist (den ich nie benutze).

@ TejasQ Workaround hat bei mir nicht funktioniert.

Ich benutze auch GitHub-Pakete.
Immer noch 401 unauthorized , obwohl es mit npm perfekt funktioniert

Ich habe es geschafft, es mit Garn v1.22.0 zum Laufen zu bringen

.npmrc

always-auth=true
<strong i="7">@fortawesome</strong>:registry=https://npm.fontawesome.com
//npm.fontawesome.com/:_authToken=xyz-xyz-xyz-xyz

.yarnrc

"<strong i="11">@fortawesome</strong>:registry" "https://npm.fontawesome.com"

registry "https://some-regular-registry.org"

und dann ausführen: yarn add @fortawesome/fontawesome-pro

Ich hatte auch gehofft, dass ich es mit nur .npmrc , aber es funktioniert nur, wenn .yarnrc hinzugefügt wird, also müssen wir die Konfiguration nur für Garn duplizieren.

Ich denke, das ist es, worauf ich stoße. Es funktioniert, wenn sich .npmrc im Home-Verzeichnis befindet, aber nicht im Projektverzeichnis (erforderlich für Jenkins / Travis).
https://github.com/yarnpkg/yarn/issues/8034

Dies löste es für mich: https://github.com/yarnpkg/yarn/issues/4451#issuecomment -570691809

Stellen Sie sicher, dass Sie nach der Registrierung kein /name wenn Sie den Gültigkeitsbereich festlegen:

- <strong i="7">@4r7d3c0</strong>:registry=https://npm.pkg.github.com/4r7d3c0
+ <strong i="8">@4r7d3c0</strong>:registry=https://npm.pkg.github.com

Gemäß Dokument registry=https://npm.pkg.github.com/OWNER ich übersehen, dass der Eigentümer beim Festlegen des Bereichs nicht da sein muss. NPM konnte damit umgehen, Garn jedoch nicht.

Für diejenigen, die Aliase verwenden, überprüfen Sie diese Problemumgehung: https://github.com/yarnpkg/yarn/issues/8130#issuecomment -636281053

Musste .npmrc auf Benutzerebene und .npmrc auf Projektebene aufteilen, damit das Garn die GitHub-Paket-Token respektiert. Das Verschieben benannter Registrierungsdeklarationen von der Benutzerebene auf die Projektebene war der Schlüssel

Inhalt von ~/.npmrc

_auth=#####TOKEN_FOR_ARTIFACTORY#####
always-auth=true
registry=https://artifactory.mycompany.net/artifactory/api/npm/npm/
//npm.pkg.github.com/:_authToken=####GitHub_NPM_REGISTRY_TOKEN#####

Inhalt von ~/projects/blah/.npmrc

<strong i="14">@mycompany</strong>:registry=https://npm.pkg.github.com

Bis ich den Registrierungseintrag für das Familienpaket ^ auf Projektebene .npmrc verschoben habe, gab mir yarn install 401 (für von GH gehostete Pakete unter @mycompany ).

Für Docker Build montieren Sie sie separat:

base.Dockerfile :

# syntax=docker/dockerfile:1-experimental
## ^ need to enable --mount=type=secret support

ARG BASE_IMAGE
FROM ${BASE_IMAGE} as build

# note that only project-level .npmrc is copied
COPY package.json yarn.lock .npmrc ./

# ~/.npmrc with actual secrets is mounted as "secret" (does not stay in image)
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc,required \
    yarn install --production --frozen-lockfile ...

Docker-Build-Befehl:

DOCKER_BUILDKIT=1 docker build \
        --build-arg BASE_IMAGE=$(BASE_IMAGE) \
        --secret id=npmrc,src="$(HOME)/.npmrc" \
        -t $(IMAGE_NAME):$(IMAGE_TAG) \
        -f base.Dockerfile .

_ (Beachten Sie, dass ich NICHT .yarnrc brauchte, damit dies funktioniert, aber ich bin auf Garn 1.17.3, so dass die Dinge für andere Versionen anders sein können) _

Ich habe ein bisschen herumgegraben und es scheint, dass Garn die falschen Authentifizierungsdaten verwendet.

~ / .npmrc

//npm-old.visualon.de/npm/vo-npm/:_password=XXXXXX
//npm-old.visualon.de/npm/vo-npm/:username=kriese
//npm-old.visualon.de/npm/vo-npm/:always-auth=true

//npm-new.visualon.de/:_authToken="XXXXXX"

package.json

{
  "name": "yarn-auth",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "tslib": "^2.0.1",
    "moment": "2.20.1"
  }
}

Garnschloss

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


[email protected]:
  version "2.20.1"
  resolved "https://npm-old.visualon.de/npm/vo-npm/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
  integrity sha1-1usaRsvMFKKy+UNBEsH/iQfzE/0=

tslib@^2.0.1:
  version "2.0.1"
  resolved "https://npm-new.visualon.de/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
  integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==

Beim Versuch, Garn zu installieren, wird der bearer -Token von npm-new.visualon.de auf npm-old.visualon.de . Es wird also nur die Basisdomäne verglichen.

Wenn es noch jemand gibt, hat das für mich funktioniert.

.npmrc:
always-auth=true
<strong i="6">@orgaccount</strong>:registry=https://npm.pkg.github.com
registry=https://registry.yarnpkg.com

https://npm.pkg.github.com/:_authToken=yyyyjjjjj3333888etc

Ich bin mir nicht sicher, ob jemand mit einem ähnlichen Problem konfrontiert ist, aber vielleicht hilft dies jemandem, ein bisschen Zeit zu sparen:

Ich verwende Azure Artifacts als private Registrierung und habe die dort dokumentierten PAT- und .npmrc-Dateien eingerichtet.
Trotzdem stieß ich auf das gleiche Problem, dass npm install einwandfrei funktionierte, aber yarn install stößt ständig auf den 401-Fehler.
Nach einigem Ausprobieren stellte sich heraus, dass meine Registrierungs-URL ein Sonderzeichen hatte (... @ Local / ...), aber Azure Artifacts löst dieses Problem in der Unicode-Darstellung in ihrem Setup-Handbuch auf. npm erledigt das ganz gut, Garn nicht so sehr. Das Festlegen des tatsächlichen @ -Zeichens in der URL hat mein Problem gelöst.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen