Ich habe mich für die Beta-Version der privaten npm-Registrierung von Github angemeldet und deren Anweisungen befolgt: https://github.com/features/package-registry
Funktioniert hervorragend mit npm, aber ich würde lieber Garn verwenden. Und während npm keine Probleme hat, das registrierte Paket zu finden, kann Garn es überhaupt nicht finden.
yarn add @omniphx/adminite-adminite-ui-components
Ausgänge:
yarn add v1.19.0
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍 Resolving packages...
error Couldn't find package "@omniphx/adminite-ui-components" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Nachdem ich mich über private Repos mit Garn informiert hatte, dachte ich, der Trick liege daran, dass Garn ein etwas anderes RC-Format hat. Leider hat das auch nicht funktioniert und Garn kann die private Registrierung immer noch nicht finden.
.npmrc
registry=https://registry.npmjs.org
@omniphx:registry=https://npm.pkg.github.com/omniphx
.yarnrc
registry "https://registry.npmjs.org"
"@omniphx:registry" "https://npm.pkg.github.com/omniphx"
Außerdem wurde bestätigt, dass mein Github-Token ebenfalls gesetzt ist mit yarn config list
:
yarn config v1.19.0
info yarn config
{
'version-tag-prefix': 'v',
'version-git-tag': true,
'version-commit-hooks': true,
'version-git-sign': false,
'version-git-message': 'v%s',
'init-version': '1.0.0',
'init-license': 'MIT',
'save-prefix': '^',
'bin-links': true,
'ignore-scripts': false,
'ignore-optional': false,
registry: 'https://registry.npmjs.org',
'strict-ssl': true,
'user-agent': 'yarn/1.19.0 npm/? node/v12.11.1 darwin x64',
email: '[email protected]',
lastUpdateCheck: 1570679687836,
username: 'omniphx',
'@omniphx:registry': 'https://npm.pkg.github.com/omniphx'
}
info npm config
{
'//npm.pkg.github.com/:_authToken': 'fake12345',
registry: 'https://registry.npmjs.org',
'@omniphx:registry': 'https://npm.pkg.github.com/omniphx',
python: '/usr/bin/python'
}
Irgendeine Idee?
Aufgelöst
Changed "@myorg:registry" "https://npm.pkg.github.com/myorg"
To "@myorg:registry" "https://npm.pkg.github.com"
Antworten:
Ich bin gerade in eine ähnliche Situation geraten. Es schien, dass
yarn
nur in der Hauptregistrierung des Garnpakets nach dem privaten Paket meiner Organisation gesucht wurde. Ich hatte die Beispiele aus der GitHub-Paketdokumentation zum Erstellen Ihrer.npmrc
Datei direkt in die.yarnrc
Datei im Projekt kopiert, die die App verbraucht, ohne zu wissen, dass die Formate unterschiedlich waren (ich musste mich noch nie mit.yarnrc
Dateien befassen ).Nachdem Sie die
.yarnrc
Datei jedoch mit dem oben erwähnten korrekten Format aktualisiert haben (das ich auch beim Googeln gefunden habe), habenyarn
Sie das private Paket erfolgreich gefunden und korrekt installiert.Als Heads-Up meine
yarn
Version: 1.17.3Schritte, die ich unternommen habe
cd
zum Projektnvm use
(wenn Sie eine bestimmte Knotenversion verwenden möchten).yarnrc
dem Projekt die korrekt formatierte Datei hinzu. Unten sehen Sie, wie es aussieht.package.json
zu meinem privaten Paket hinzunpm login --registry=https://npm.pkg.github.com --scope=@MyOrg
yarn
Das hat bei mir funktioniert.
.yarnrc
Hinweis : Im Folgenden finden Sie einen Hinweis zum Org / Scope-Namen gotcha's
Weitere Hinweise
Ich weiß, dass es den Anschein hat, dass Sie angesichts Ihres oben genannten GH-Benutzernamens / -Bereichs keine Probleme damit haben, aber für alle anderen, die hierher kommen, ist die Dokumentation zu GH in Bezug auf die Zuordnung Ihres Benutzernamens / Organisationsnamens etwas spärlich ein Bereich im Paketnamen. Denken Sie daran, diese kleinen Fallstricke hier:
name: @johndturn/my-package
MyOrg
, ersetzen Sie diese einfach im Namen des Pakets in Ihrerpackage.json
und Ihrer.yarnrc
durch Kleinbuchstabenname: @myorg/my-package
npm login
ich die Großbuchstaben im--scope=
Argument beibehalten .MyOrg/random-prefix.js-lib
haben . Dann sieht die Installation in anderen Projekten ungefähr so aus .name: @myorg/js-lib
package.json
@myorg/js-lib: 1.0.0
quelle
Jenkinsfile
, gehe ich davon aus, dass Sie die obigen Befehle (wienpm login ...
) einfachJenkinsfile
in einem vorgefertigten Schritt zu Ihrem hinzufügen können . Dies setzt auch voraus, dass Sie Jenkins bei einem Benutzer in Ihrer GitHub-Organisation authentifiziert haben, der über die richtigen Berechtigungen zum Abrufen von Paketen aus Ihrer Organisation verfügt. Das heißt, ich habe es noch nicht für unsere Jenkins-Boxen implementiert, aber ich werde Sie wissen lassen, wann ich es tue (wenn es von dem abweicht, was ich erwähnt habe)."@myorg:registry" "https://npm.pkg.github.com/myorg"
stattdessen ein Problem"@myorg:registry" "https://npm.pkg.github.com"
. Seltsam, dass dieselbe URL in meinem.npmrc
/myorg
Sie das Ende einfach in Ihrem.npmrc
, und dann funktioniert die GitHub-Paketregistrierung entweder mit Garn oder mit npm. (Ohne dass eine separate erforderlich ist.yarnrc
.)Ich bin kein Experte für npm / Garn, daher verstehe ich möglicherweise falsch, was hier passiert, aber ich denke, dass das Proxy-Paket aus der npm-Registrierung noch nicht mit Garn funktioniert. Könnte das zusammenhängen? Als das Paket-Proxy für npm veröffentlicht wurde, erinnere ich mich, dass ich auf Twitter Kommentare von Leuten gelesen habe, die es mit Garn versucht haben und es nicht funktioniert hat.
Den Twitter-Thread finden Sie hier: https://twitter.com/github/status/1171832034580451328
quelle
Das Problem, das ich hatte, ist etwas anders.
Nachdem ich versucht habe, was John vorgeschlagen hat, kann ich immer noch keine privaten Registrierungspakete hinzufügen
yarn
(aber vollkommen in Ordnung mitnpm
)Dann erkenne ich zwei Dinge:
Für GitHub-Pakete
npm
ist beides in Ordnungregistry=https://npm.pkg.github.com/my-org
oder
@my-org:registry=https://npm.pkg.github.com
aber
yarn
nur die letztere Syntax zulassen.Dokumente von der Github-Website zeigen nur die erste Syntax, die für Garnbenutzer Probleme verursachen kann.
Eine andere Sache ist, dass wenn Sie
npm login
zur privaten Registrierung gehen, aber eine.yarnrc
Datei in Ihrem Projekt verwenden, Garn Ihrenpm
Anmeldeinformationen nicht wirklich damit mischen kann. Obwohl es scheint, sich in verschiedenen Umgebungen unterschiedlich zu verhalten.Es scheint jedoch eine bewährte Methode zu sein, sich entweder an
yarn login
+.yarnrc
odernpm login
+ zu halten.npmrc
(in beiden Fällen können Sie weiterhin Garn verwenden, um Ihre Pakete zu verwalten).quelle