{"meta":{"title":"Arbeiten mit der npm-Registry","intro":"Sie können npm so konfigurieren, dass Pakete auf GitHub Packages veröffentlicht und auf GitHub Packages gespeicherte Pakete als Abhängigkeiten in einem npm-Projekt verwendet werden.","product":"GitHub Packages","breadcrumbs":[{"href":"/de/packages","title":"GitHub Packages"},{"href":"/de/packages/working-with-a-github-packages-registry","title":"Arbeiten mit einer GitHub Packages-Registrierung"},{"href":"/de/packages/working-with-a-github-packages-registry/working-with-the-npm-registry","title":"npm-Registrierung"}],"documentType":"article"},"body":"# Arbeiten mit der npm-Registry\n\nSie können npm so konfigurieren, dass Pakete auf GitHub Packages veröffentlicht und auf GitHub Packages gespeicherte Pakete als Abhängigkeiten in einem npm-Projekt verwendet werden.\n\n<!-- 2148AF7B-5FF8-4B28-A808-D692FEE2225A -->\n\n## Authentifizierung bei GitHub Packages\n\n> \\[!NOTE]\n> GitHub Packages unterstützt nur die Authentifizierung mit einem personal access token (classic). Weitere Informationen finden Sie unter [Verwalten deiner persönlichen Zugriffstoken](/de/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).\n\nDu benötigst ein Zugriffstoken, um private, interne und öffentliche Pakete zu veröffentlichen, zu installieren und zu löschen.\n\nDu kannst ein personal access token (classic) verwenden, um dich bei GitHub Packages oder der GitHub-API zu authentifizieren. 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](/de/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries).\n\nUm dich bei einer GitHub Packages-Registrierung innerhalb eines GitHub Actions-Workflows zu authentifizieren, kannst du Folgendes verwenden:\n\n* `GITHUB_TOKEN`, um Pakete zu veröffentlichen, die mit dem Workflowrepository verbunden sind.\n* Ein personal access token (classic) mit mindestens dem `read:packages`-Bereich für die Installation von Paketen, die anderen privaten Repositorys zugeordnet sind (`GITHUB_TOKEN` kann verwendet werden, wenn das Repository Lesezugriff auf das Paket enthält. Weitere Informationen findest du unter [Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen](/de/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)).\n\n### Authentifizieren in einem GitHub Actions Workflow\n\nDiese Registrierung unterstützt präzise Berechtigungen. Für Registries, die feingranulare Berechtigungen unterstützen, empfehlen wir dringend, Ihren GitHub Actions-Workflow, wenn er ein personal access token zur Authentifizierung bei einer Registry verwendet, so zu aktualisieren, dass `GITHUB_TOKEN` verwendet wird. Anleitungen zum Aktualisieren Ihrer Workflows, die sich mit einer personal access token bei einer Registry authentifizieren, finden Sie in [Veröffentlichen und Installieren eines Pakets mit GitHub Actions](/de/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#upgrading-a-workflow-that-accesses-a-registry-using-a-personal-access-token).\n\n> \\[!NOTE]\n> Die Möglichkeit für GitHub Actions-Workflows, Pakete mithilfe der REST-API zu löschen und wiederherzustellen, befindet sich derzeit in der Öffentliche Vorschau. Änderungen sind vorbehalten.\n\nSie können einen `GITHUB_TOKEN` in einem GitHub Actions-Workflow verwenden, um über die REST-API ein Paket zu löschen oder wiederherzustellen, wenn das Token über die Berechtigung `admin` für das Paket verfügt. Repositorys, die Pakete mithilfe eines Workflows veröffentlichen, und Repositorys, die du explizit mit Paketen verbunden hast, erhalten automatisch die `admin`-Berechtigung für Pakete im Repository.\n\nWeitere Informationen zum `GITHUB_TOKEN` findest du unter [Verwenden von GITHUB\\_TOKEN für die Authentifizierung in Workflows](/de/actions/tutorials/authenticate-with-github_token#using-the-github_token-in-a-workflow). Weitere Informationen zu den Best Practices bei der Verwendung einer Registrierung in Actions findest du unter [Kompromittierte Runner](/de/actions/concepts/security/compromised-runners#cross-repository-access).\n\nSie können auch festlegen, dass Paketen unabhängig fürGitHub Codespaces undGitHub Actions Zugriffsberechtigungen erteilt werden. Weitere Informationen findest du unter [Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen](/de/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#ensuring-github-codespaces-access-to-your-package) und [Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen](/de/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#ensuring-workflow-access-to-your-package).\n\n### Authentifizieren mit einem personal access token\n\nDu musst ein personal access token (classic) mit den entsprechenden Bereichen verwenden, um Pakete in GitHub Packages zu veröffentlichen und zu installieren. Weitere Informationen finden Sie unter [Einführung in GitHub-Pakete](/de/packages/learn-github-packages/introduction-to-github-packages#authenticating-to-github-packages).\n\nSie können sich bei GitHub Packages mit npm authentifizieren, indem Sie entweder Ihre benutzerspezifische Datei `~/.npmrc` so bearbeiten, dass sie Ihr personal access token (classic) enthält, oder indem Sie sich in der Befehlszeile bei npm mit Ihrem Benutzernamen und Ihrem personal access token\nanmelden.\n\nZur Authentifizierung durch Hinzufügen Ihres personal access token (classic) zu Ihrer Datei `~/.npmrc` bearbeiten Sie die Datei `~/.npmrc` für Ihr Projekt so, dass sie die folgende Zeile enthält, und ersetzen Sie TOKEN durch Ihr personal access token. Erstelle eine neue `~/.npmrc`-Datei, wenn keine vorhanden ist.\n\n```shell\n//npm.pkg.github.com/:_authToken=TOKEN\n```\n\nUm sich durch Anmeldung bei npm zu authentifizieren, verwenden Sie den `npm login` Befehl, und ersetzen Sie den Benutzernamen durch Ihren Benutzernamen, TOKEN durch Ihre GitHubpersonal access token (classic)und PUBLIC-EMAIL-ADDRESS durch Ihre E-Mail-Adresse.\n\nWenn 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`](https://docs.npmjs.com/cli/v10/commands/npm-login).\n\nWenn GitHub Packages nicht Ihre Standard-Paket-Registry für die Verwendung mit npm ist und Sie den Befehl `npm audit` verwenden möchten, empfehlen wir, das Flag `--scope` mit dem Namespace zu verwenden, der das Paket hostet (das persönliche Konto oder die Organisation , dem bzw. der das Paket zugeordnet wird), wenn Sie sich bei GitHub Packages authentifizieren.\n\n```shell\n$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://npm.pkg.github.com\n\n> Username: USERNAME\n> Password: TOKEN\n```\n\n## Veröffentlichen eines Pakets\n\n> \\[!NOTE]\n\n> * Für Paketnamen und Bereiche dürfen nur Kleinbuchstaben verwendet werden.\n> * Der Tarball für eine npm-Version muss kleiner als 256 MB sein.\n\nDie GitHub Packages Registrierung speichert npm-Pakete innerhalb Ihrer Organisation oder Ihres persönlichen Kontos und ermöglicht es Ihnen, ein Paket einem Repository zuzuordnen. Du kannst wählen, ob Berechtigungen von einem Repository geerbt oder präzise Berechtigungen unabhängig von einem Repository festgelegt werden sollen.\n\nWenn du ein Paket zum ersten Mal veröffentlichst, ist die Sichtbarkeit standardmäßig auf privat eingestellt. Informationen zum Ändern der Sichtbarkeit oder zum Festlegen von Zugriffsberechtigungen findest du unter [Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen](/de/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility). Weitere Informationen zum Verknüpfen eines veröffentlichten Pakets mit einem Repository finden Sie unter [Verbinden eines Repositorys mit einem Paket](/de/packages/learn-github-packages/connecting-a-repository-to-a-package).\n\nSie können ein Paket mit einem Repository verbinden, sobald das Paket veröffentlicht wird, indem Sie ein `repository`-Feld in die `package.json`-Datei einschließen. Sie können diese Methode auch verwenden, um mehrere Pakete mit demselben Repository zu verbinden. Weitere Informationen findest du unter [Veröffentlichen mehrerer Pakete im selben Repository](#publishing-multiple-packages-to-the-same-repository).\n\n> \\[!NOTE]\n> Wenn du ein Paket veröffentlichst, das mit einem Repository verknüpft ist, erbt das Paket automatisch die Zugriffsberechtigungen des verknüpften Repositorys, und GitHub Actions-Workflows im verknüpften Repository erhalten automatisch Zugriff auf das Paket – es sei denn, deine Organisation hat die automatische Vererbung von Zugriffsberechtigungen deaktiviert. Weitere Informationen finden Sie unter [Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen](/de/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#about-inheritance-of-access-permissions).\n\nDu 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.\nGitHub 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\"`.\n\nNachdem Du ein Paket veröffentlicht hast, kannst Du das Paket auf GitHub ansehen. Weitere Informationen finden Sie unter [Pakete anzeigen](/de/packages/learn-github-packages/viewing-packages).\n\n### Veröffentlichen eines Pakets mit einer lokalen `.npmrc`-Datei\n\nDu kannst eine `.npmrc`-Datei verwenden, um die Bereichszuordnung für dein Projekt zu konfigurieren. Verwenden Sie in der Datei `.npmrc` die URL GitHub Packages und den Kontoinhaber, damit GitHub Packages weiß, wohin Paketanforderungen geleitet werden sollen. Durch die Verwendung einer `.npmrc` Datei wird verhindert, dass andere Entwickler das Paket versehentlich in npmjs.org statt in GitHub Packagesnpmjs.org veröffentlichen.\n\n1. Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter [Authentifizieren bei GitHub Packages](#authenticating-to-github-packages).\n\n2. 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 , auf das das Paket ausgerichtet wird.\n\n   ```shell\n   @NAMESPACE:registry=https://npm.pkg.github.com\n   ```\n\n3. Füge die *NPMRC*-Datei dem Repository hinzu, in dem GitHub Packages dein Projekt finden kann. Weitere Informationen finden Sie unter [Eine Datei zu einem Repository hinzufügen](/de/repositories/working-with-files/managing-files/adding-a-file-to-a-repository).\n\n4. Ü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 Ihr Paket beispielsweise als \"test\" bezeichnet wird und Sie es in der Organisation \"Meine Organisation\" GitHub veröffentlichen, sollte das `name` Feld in Ihrem `package.json` Feld lauten `@my-org/test`.\n\n5. Überprüfe das `repository`-Feld 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.\n\n6. Das Paket veröffentlichen:\n\n   ```shell\n   npm publish\n   ```\n\n### Veröffentlichen eines Pakets mithilfe von `publishConfig` in der Datei `package.json`\n\nDu 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](https://docs.npmjs.com/files/package.json#publishconfig) in der npm-Dokumentation.\n\n1. Bearbeite die Datei `package.json` für dein Paket, und füge einen `publishConfig`-Eintrag ein.\n\n   ```shell\n   \"publishConfig\": {\n     \"registry\": \"https://npm.pkg.github.com\"\n   },\n   ```\n\n2. Überprüfe das `repository`-Feld 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.\n\n3. Das Paket veröffentlichen:\n\n   ```shell\n   npm publish\n   ```\n\n## Veröffentlichen mehrerer Pakete im gleichen Repository\n\nWenn Sie mehrere Pakete veröffentlichen und mit demselben Repository verknüpfen möchten, können Sie die URL des GitHub Repositorys in das `repository` Feld der `package.json` Datei für jedes Paket einschließen. Weitere Informationen findest du unter [Erstellen einer package.json-Datei](https://docs.npmjs.com/creating-a-package-json-file) und [Erstellen von Node.js-Modulen](https://docs.npmjs.com/creating-node-js-modules) in der npm-Dokumentation.\n\nUm sicherzustellen, dass die URL des Repositorys korrekt ist, ersetzen Sie `REPOSITORY` durch den Namen des Repositorys, das das Paket enthält, das Sie veröffentlichen möchten, und `OWNER` durch den Namen des persönlichen Kontos oder der Organisation, das GitHub das Repository besitzt.\n\nGitHub Packages entspricht dem Repository basierend auf der URL.\n\n```shell\n\"repository\":\"https://github.com/OWNER/REPOSITORY\",\n```\n\n## Installieren eines Pakets\n\nSie können Pakete von GitHub Packages installieren, indem Sie die Pakete als Abhängigkeiten in der Datei `package.json` Ihres Projekts hinzufügen. Weitere Informationen zum Verwenden einer `package.json`-Datei in deinem Projekt findest du unter [Arbeiten mit package.json](https://docs.npmjs.com/getting-started/using-a-package.json) in der npm-Dokumentation.\n\nDu kannst Pakete standardmäßig aus einer Organisation hinzufügen. Weitere Informationen findest du unter [Installieren von Paketen aus anderen Organisationen](#installing-packages-from-other-organizations).\n\nAußerdem müssen Sie die Datei `.npmrc` Ihrem Projekt hinzufügen, damit alle Anfragen zur Installation von Paketen über GitHub Packages geleitet werden. Wenn Sie alle Paketanfragen über GitHub Packages leiten, können Sie sowohl Pakete mit als auch ohne Bereich von *npmjs.org* verwenden. Weitere Informationen finden Sie unter [npm-scope](https://docs.npmjs.com/misc/scope) in der npm-Dokumentation.\n\n1. Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter [Authentifizieren bei GitHub Packages](#authenticating-to-github-packages).\n\n2. 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 , auf das das Paket ausgerichtet wird.\n\n   ```shell\n   @NAMESPACE:registry=https://npm.pkg.github.com\n   ```\n\n3. Füge die *NPMRC*-Datei dem Repository hinzu, in dem GitHub Packages dein Projekt finden kann. Weitere Informationen finden Sie unter [Eine Datei zu einem Repository hinzufügen](/de/repositories/working-with-files/managing-files/adding-a-file-to-a-repository).\n\n4. Konfiguriere `package.json` in deinem Projekt, um das Paket zu verwenden, das du installierst. Um Ihre Paketabhängigkeiten zur Datei `package.json` für GitHub Packages hinzuzufügen, geben Sie den vollständig qualifizierten Paketnamen an, z. B. `@my-org/server`. 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.\n\n   ```json\n   {\n     \"name\": \"@my-org/server\",\n     \"version\": \"1.0.0\",\n     \"description\": \"Server app that uses the ORGANIZATION_NAME/PACKAGE_NAME package\",\n     \"main\": \"index.js\",\n     \"author\": \"\",\n     \"license\": \"MIT\",\n     \"dependencies\": {\n       \"ORGANIZATION_NAME/PACKAGE_NAME\": \"1.0.0\"\n     }\n   }\n   ```\n\n5. Installiere das Paket.\n\n   ```shell\n   npm install\n   ```\n\n### Pakete von anderen Organisationen installieren\n\nStandardmäßig können Sie nur Pakete aus einer Organisation verwenden GitHub Packages . Wenn Sie Paketanforderungen an mehrere Organisationen und Benutzer weiterleiten möchten, können Sie Ihrer `.npmrc`-Datei zusätzliche Zeilen hinzufügen, wobei Sie `NAMESPACE` durch den Namen des persönlichen Kontos oder der Organisation ersetzen, auf die das Paket beschränkt ist.\n\n```shell\n@NAMESPACE:registry=https://npm.pkg.github.com\n@NAMESPACE:registry=https://npm.pkg.github.com\n```"}