Skip to main content

Enterprise Server 3.15 ist derzeit als Release Candidate verfügbar.

Arbeiten mit der npm-Registrierung

Du kannst npm für die Veröffentlichung von Paketen auf GitHub Packages und für die Nutzung von auf GitHub Packages gespeicherten Paketen als Abhängigkeiten in einem NPM-Projekt konfigurieren.

Hinweis: Dieser Pakettyp ist möglicherweise nicht für Ihre Instanz verfügbar, weil Websiteadministratoren die einzelnen unterstützten Pakettypen aktivieren oder deaktivieren können. Weitere Informationen findest du unter Konfigurieren der Paketökosystemunterstützung für dein Unternehmen.

Limits für veröffentlichte npm-Versionen

Wenn du mehr als 1.000 npm-Paketversionen auf GitHub Packages veröffentlichst, treten dabei möglicherweise Leistungsprobleme und Timeouts auf.

Um die Leistung des Diensts zu verbessern, kannst du zukünftig nicht mehr als 1.000 Versionen eines Pakets auf GitHub veröffentlichen. Alle Versionen, die vor Erreichen dieses Limits veröffentlicht wurden, sind weiterhin lesbar.

Wenn du dieses Limit erreichst, kannst du Paketversionen löschen oder dich an den Support wenden. Wenn dieses Limit erzwungen wird, wird unserer Dokumentation eine Methode hinzugefügt, mit damit umgangen werden kann. Weitere Informationen findest du unter Löschen und Wiederherstellen eines Pakets oder Einführung in GitHub-Pakete.

Bei GitHub Packages authentifizieren

GitHub Packages unterstützt nur die Authentifizierung mit einem personal access token (classic). Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken.

Du benötigst ein Zugriffstoken, um private, interne und öffentliche Pakete zu veröffentlichen, zu installieren und zu löschen.

Du kannst ein personal access token (classic) für die Authentifizierung bei GitHub Packages oder bei der GitHub Enterprise Server-API verwenden. Wenn du ein personal access token (classic) erstellst, kannst du dem Token je nach Bedarf verschiedene Bereiche zuweisen. Weitere Informationen zu paketbezogenen Bereichen für ein personal access token (classic) findest du unter Informationen zu Berechtigungen für GitHub-Pakete.

Um dich bei einer GitHub Packages-Registrierung innerhalb eines GitHub Actions-Workflows zu authentifizieren, kannst du Folgendes verwenden:

  • GITHUB_TOKEN, um Pakete zu veröffentlichen, die mit dem Workflowrepository verbunden sind.
  • Ein personal access token (classic) (diesem muss mindestens der Bereich read:packages zugeordnet sein), um Pakete zu installieren, die zu anderen privaten Repositorys gehören (auf die GITHUB_TOKEN nicht zugreifen kann)

Authentifizieren mit einem personal access token

Du musst ein personal access token (classic) mit den entsprechenden Bereichen verwenden, um Pakete in GitHub Packages zu veröffentlichen und zu installieren. Weitere Informationen findest du unter Einführung in GitHub-Pakete.

Du kannst dich bei GitHub Packages mit npm authentifizieren, indem du entweder die benutzerspezifische Datei ~/.npmrc so bearbeitest, dass dein personal access token (classic) enthalten ist, oder indem du dich über die Befehlszeile mit deinem Benutzernamen und deinem personal access token bei npm anmeldest.

Wenn du dich authentifizieren möchtest, indem du dein personal access token (classic) zu deiner ~/.npmrc-Datei hinzufügst, bearbeite die ~/.npmrc-Datei für dein Projekt so, dass sie die folgende Zeile enthält. Ersetze dabei HOSTNAME durch den Hostnamen von Ihre GitHub Enterprise Server-Instance und TOKEN durch dein personal access token. Erstelle eine neue Datei ~/.npmrc, wenn keine solche Datei vorhanden ist.

Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:

//npm.HOSTNAME//:_authToken=TOKEN

Wenn die Unterdomänenisolation für deine Instanz deaktiviert ist:

//HOSTNAME/_registry/npm/:_authToken=TOKEN

Wenn du dich bei der Anmeldung bei npm authentifizieren möchtest, verwende den Befehl npm login, ersetze USERNAME durch deinen GitHub-Benutzernamen, TOKEN durch dein personal access token (classic) und PUBLIC-EMAIL-ADDRESS durch deine E-Mail-Adresse.

Wenn du die npm CLI Version 9 oder höher verwendest und du dich über die Befehlszeile bei einer privaten Registrierung anmeldest oder von dieser abmeldest, solltest du die --auth-type=legacy-Option verwenden, um deine Authentifizierungsdetails aus Eingabeaufforderungen einlesen zu können, anstatt den Standardanmeldeflow über einen Browser zu verwenden. Weitere Informationen finden Sie unter npm-login.

Wenn GitHub Packages nicht deine Standardpaketregistrierung für die Verwendung von npm ist und du den npm audit-Befehl verwenden möchtest, empfiehlt es sich, das --scope-Flag mit dem Namespace zu verwenden, der das Paket hostet (das persönliche Konto oder die Organisation, , die das Repository besitzt, in dem das Paket gehostet wird), wenn du dich bei GitHub Packages authentifizierst.

Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:

$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://npm.HOSTNAME/

> Username: USERNAME
> Password: TOKEN

Wenn die Unterdomänenisolation für deine Instanz deaktiviert ist:

$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN

Veröffentlichen eines Pakets

Hinweis: Für Paketnamen und Bereiche dürfen nur Kleinbuchstaben verwendet werden.

Dein Paket wird standardmäßig im Repository GitHub veröffentlicht, das du im Namensfeld name der Datei package.json angegeben hast. Beispielsweise würdest du ein Paket namens @my-org/test im GitHub-Repository my-org/test veröffentlichen. Du kannst mehrere Pakete in demselben GitHub-Repository veröffentlichen, indem du ein repository-Feld in der Datei package.json einschließt. Weitere Informationen findest du unter Veröffentlichen mehrerer Pakete im selben Repository.

Du kannst die Bereichszuordnung für dein Projekt entweder mithilfe einer lokalen .npmrc-Datei im Projekt oder mithilfe der publishConfig-Option in der Datei package.json einrichten. GitHub Packages unterstützt nur bereichsbezogene npm-Pakete. Die Namen bereichsbezogener Pakete weisen das Format @NAMESPACE/PACKAGE-NAME auf. Bereichsbezogene Pakete beginnen immer mit dem Symbol @. Möglicherweise musst du den Namen in der Datei package.json aktualisieren, um den bereichsbezogenen Namen zu verwenden. Wenn du beispielsweise der Benutzer octocat bist und dein Paket den Namen test hat, weise den bereichsbezogenen Paketnamen wie folgt zu: "name": "@octocat/test".

Nachdem Du ein Paket veröffentlicht hast, kannst Du das Paket auf GitHub ansehen. Weitere Informationen findest du unter Pakete anzeigen.

Veröffentlichen eines Pakets mit einer lokalen .npmrc-Datei

Du kannst eine .npmrc-Datei verwenden, um die Bereichszuordnung für dein Projekt zu konfigurieren. Verwende in der Datei .npmrc die GitHub Packages-URL und den Kontobesitzer, damit GitHub Packages weiß, wohin Paketanforderungen weitergeleitet werden sollen. Durch die Verwendung einer .npmrc-Datei wird verhindert, dass andere Entwickler*innen das Paket versehentlich auf npmjs.org anstatt auf GitHub Packages veröffentlichen.

  1. Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.
  2. Erstelle oder bearbeite eine .npmrc-Datei in demselben Verzeichnis wie deine package.json-Datei, um eine Zeile einzuschließen, die die GitHub Packages-URL und den Namespace angibt, in dem das Paket gehostet wird. Ersetze NAMESPACE durch den Namen des Benutzer- oder Organisationskontos , das das Repository besitzt, das dein Projekt enthält.

Wenn die Unterdomänenisolation aktiviert ist:

@NAMESPACE:registry=https://npm.HOSTNAME

Wenn die Unterdomänenisolation deaktiviert ist:

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
  1. Füge die NPMRC-Datei dem Repository hinzu, in dem GitHub Packages dein Projekt finden kann. Weitere Informationen findest du unter Eine Datei zu einem Repository hinzufügen.

  2. Überprüfe den Namen deines Pakets in der Datei package.json deines Projekts. Das Feld name muss den Bereich und den Namen des Pakets enthalten. Wenn dein Paket beispielsweise den Namen „test“ trägt und du es in der GitHub-Organisation „My-org“ veröffentlichen möchtest, muss das Feld name in der Datei package.json @my-org/test lauten.

  3. Überprüfe das Feld repository in der Datei package.json deines Projekts. Das Feld repository muss mit der URL für Ihr GitHub-Repository übereinstimmen. Wenn ihre Repository-URL beispielsweise github.com/my-org/test lautet, sollte das Repositoryfeld https://github.com/my-org/test.git lauten.

  4. Das Paket veröffentlichen:

    npm publish
    

Veröffentlichen eines Pakets mithilfe von publishConfig in der Datei package.json

Du kannst das publishConfig-Element in der Datei package.json verwenden, um die Registrierung anzugeben, in der das Paket veröffentlicht werden soll. Weitere Informationen findest du unter publishConfig in der npm-Dokumentation.

  1. Bearbeite die Datei package.json für dein Paket, und füge einen publishConfig-Eintrag ein.

Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:

"publishConfig": {
  "registry": "https://npm. HOSTNAME/"
},

Wenn die Unterdomänenisolation für deine Instanz deaktiviert ist:

"publishConfig": {
  "registry": "https://HOSTNAME/_registry/npm/"
},
  1. Überprüfe das Feld repository in der Datei package.json deines Projekts. Das Feld repository muss mit der URL für Ihr GitHub-Repository übereinstimmen. Wenn ihre Repository-URL beispielsweise github.com/my-org/test lautet, sollte das Repositoryfeld https://github.com/my-org/test.git lauten.

  2. Das Paket veröffentlichen:

    npm publish
    

Veröffentlichen mehrerer Pakete im gleichen Repository

Wenn du mehrere Pakete im selben Repository veröffentlichen möchtest, kannst du die URL des GitHub-Repositorys im Feld repository der Datei package.json einfügen. Weitere Informationen findest du unter Erstellen einer package.json-Datei und Erstellen von Node.js-Modulen in der npm-Dokumentation.

Wenn du sicherstellen möchtest, dass die URL des Repositorys korrekt ist, ersetze REPOSITORY durch den Namen des Repositorys, das das zu veröffentlichende Paket enthält, und OWNER durch den Namen des persönlichen Kontos oder der Organisation auf GitHub, in dessen Besitz sich das Repository befindet.

GitHub Packages passt das Repository anhand der URL anstelle des Paketnamens an.

"repository":"https://HOSTNAME/OWNER/REPOSITORY",

Installieren eines Pakets

Du kannst Pakete aus GitHub Packages installieren, indem du die Pakete als Abhängigkeiten in der Datei package.json für dein Projekt hinzufügst. Weitere Informationen zur Verwendung einer package.json-Datei in deinem Projekt findest du unter Arbeiten mit package.json in der Dokumentation zu npm.

Du kannst Pakete standardmäßig aus einer Organisation hinzufügen. Weitere Informationen findest du unter Installieren von Paketen aus anderen Organisationen.

Du musst außerdem die Datei .npmrc zu deinem Projekt hinzufügen, damit alle Anforderungen zum Installieren von Paketen an GitHub Packages weitergeleitet werden. Wenn Sie alle Paketanforderungen über GitHub Packages weiterleiten, können Sie sowohl bereichsbezogene als auch nicht bereichsbezogene Pakete aus npmjs.org verwenden. Weitere Informationen finden Sie unter „npm-scope“ in der Dokumentation zu npm.

  1. Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.
  2. Erstelle oder bearbeite eine .npmrc-Datei in demselben Verzeichnis wie deine package.json-Datei, um eine Zeile einzuschließen, die die GitHub Packages-URL und den Namespace angibt, in dem das Paket gehostet wird. Ersetze NAMESPACE durch den Namen des Benutzer- oder Organisationskontos , das das Repository besitzt, das dein Projekt enthält.

Wenn die Unterdomänenisolation aktiviert ist:

@NAMESPACE:registry=https://npm.HOSTNAME

Wenn die Unterdomänenisolation deaktiviert ist:

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
  1. Füge die NPMRC-Datei dem Repository hinzu, in dem GitHub Packages dein Projekt finden kann. Weitere Informationen findest du unter Eine Datei zu einem Repository hinzufügen.

  2. Konfiguriere package.json in deinem Projekt, um das Paket zu verwenden, das du installierst. Gib den vollständigen Paketnamen an (z. B. @my-org/server), um die Paketabhängigkeiten zur Datei package.json für GitHub Packages hinzuzufügen. Gib für Pakete aus npmjs.com den vollständigen Namen (z. B. @babel/core oder lodash) an. Ersetze ORGANIZATION_NAME/PACKAGE_NAME durch deine Paketabhängigkeit.

    {
      "name": "@my-org/server",
      "version": "1.0.0",
      "description": "Server app that uses the ORGANIZATION_NAME/PACKAGE_NAME package",
      "main": "index.js",
      "author": "",
      "license": "MIT",
      "dependencies": {
        "ORGANIZATION_NAME/PACKAGE_NAME": "1.0.0"
      }
    }
    
  3. Installiere das Paket.

    npm install
    

Pakete von anderen Organisationen installieren

Standardmäßig kannst du nur GitHub Packages-Pakete von einer Organisation verwenden. Wenn du Paketanforderungen an mehrere Organisationen und Benutzer*innen weiterleiten möchtest, kannst du der .npmrc-Datei zusätzliche Zeilen hinzufügen und HOSTNAME durch den Hostnamen von Ihre GitHub Enterprise Server-Instance sowie NAMESPACE durch den Namen des persönlichen Kontos oder der Organisation, in dessen Besitz sich das Repository befindet, das das Projekt enthält..

Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:

@NAMESPACE:registry=https://npm.HOSTNAME
@NAMESPACE:registry=https://npm.HOSTNAME

Wenn die Unterdomänenisolation für deine Instanz deaktiviert ist:

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
@NAMESPACE:registry=https://HOSTNAME/_registry/npm

Verwenden der offiziellen npm-Registrierung

Mit GitHub Packages kannst du auf die offizielle npm-Registrierung unter registry.npmjs.com zugreifen, wenn deine GitHub Enterprise Server-Administratorin dieses Feature aktiviert hat. Weitere Informationen findest du unter Herstellen einer Verbindung mit der offiziellen npm-Registrierung.