注: サイト管理者はそれぞれのサポートされているパッケージの種類を有効化あるいは無効化できるので、このパッケージの種類はインスタンスで利用できないかもしれません。 詳細については、「エンタープライズ向けのパッケージ サポートの構成」を参照してく� さい。
公開したnpmバージョンに対する制限
GitHub Packagesに公開したnpmパッケージのバージョンが1000を超える� �合、使用中にパフォーマンスの問題やタイ� アウトが発生することがあります。
サービスのパフォーマンスを向上させるため、将来的には1,000を超えるパッケージのバージョンをGitHubに公開できなくなります。 この制限に達しないバージョンであれば、今後も読み取り可能です。
この制限に達した� �合は、パッケージのバージョンを削除するよう検討するか、サポートにお問い合わせく� さい。 この制限が施行されるようになると、ドキュメントが更新され、この制限を回避する方法が記載されることになります。 詳細については、「パッケージを削除および復元する」または「サポートに問い合わせる」を参照してく� さい。
GitHub Packages への認証を行う
パッケージを発行、インストール、および削除するには、アクセス トークンが必要です。
個人アクセス トークン (PAT) を使用し、GitHub Packages または GitHub Enterprise Server API の認証を受けることができます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PAT のパッケージ関連のスコープの詳細については、「GitHub パッケージのアクセス許可について」を参照してく� さい。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKEN
では、ワークフロー リポジトリに関連付けられているパッケージを発行します。packages:read
以上のスコープが設定された PAT では、(GITHUB_TOKEN
ではアクセスできない) 他のプライベート リポジトリに関連付けられているパッケージがインストールされます。
personal access token で認証を行う
GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しくは、「GitHub Packages について」をご覧く� さい。
npm で GitHub Packages に対して認証を行うには、ユーザーごとの ~/.npmrc ファイルを編集して personal access token を含めるか、コマンド ラインでユーザー名と personal access token を使って npm にログインします。
~/.npmrc ファイルに personal access token を追� して認証を行うには、プロジェクトの ~/.npmrc ファイルを編集して次の行を含めます。HOSTNAME は your GitHub Enterprise Server instance のホスト名に、TOKEN は personal access token に置き換えます。 存在しない� �合は、新しい ~/.npmrc ファイルを作成します。
インスタンスで Subdomain Isolation が有効になっている� �合:
//npm.HOSTNAME//:_authToken=TOKEN
インスタンスで Subdomain Isolation が無効になっている� �合:
//HOSTNAME/_registry/npm/:_authToken=TOKEN
npm にログインして認証を行うには、npm login
コマンドを使用します。USERNAME は GitHub ユーザー名に、TOKEN は personal access token に、PUBLIC-EMAIL-ADDRESS はメール アドレスに置き換えます。
GitHub Packages が npm を使用するための既定のパッケージ レジストリではなく、npm audit
コマンドを使用する� �合は、GitHub Packages に対する認証時に、パッケージの所有者と共に --scope
フラグを使用することをお勧めします。
インスタンスで Subdomain Isolation が有効になっている� �合:
$ npm login --scope=@OWNER --registry=https://npm.HOSTNAME/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
インスタンスで Subdomain Isolation が無効になっている� �合:
$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
パッケージの公開
注: パッケージ名とスコープには小文字のみを使用する必要があります。
既定では、GitHub Packages は package.json ファイルの name フィールドで指定された GitHub リポジトリにパッケージを公開します。 たとえば、@my-org/test
という名前のパッケージは、my-org/test
GitHub リポジトリに公開することになります。 npm v8.5.3 以降を実行している� �合は、パッケージ ディレクトリに README.md ファイルを含めることで、パッケージのリスト ページの概要を追� できます。 詳しくは、package.json の利用と Node.js モジュールの作成方法に関する npm のドキュメントをご覧く� さい。
URL
フィールドを package.json ファイルに含めることで、同じ GitHub リポジトリに複数のパッケージを公開できます。 詳しくは、「同じリポジトリへの複数パッケージの公開」をご覧く� さい。
プロジェクト内にあるローカルの .npmrc ファイルか、package.json の publishConfig
オプションを使用して、プロジェクトのスコープのマッピングを設定できます。 GitHub Packagesはスコープ付きのnpmパッケージのみをサポートしています。 スコープ付きのパッケージには、@owner/name
形式の名前が付いています。 スコープ付きのパッケージの先� �には常に @
記号が付いています。 スコープ付きの名前を使うには、package.json で名前を更新する必要がある� �合があります。 たとえば、"name": "@codertocat/hello-world-npm"
のようにします。
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しくは、「パッケージの表示」をご覧く� さい。
ローカルの .npmrc ファイルを使用したパッケージの公開
.npmrc ファイルを使用して、プロジェクトのスコープのマッピングを設定できます。 .npmrc ファイルで GitHub Packages の URL とアカウント所有者を使い、GitHub Packages がパッケージ要求のルーティング先を把握できるようにしてく� さい。 .npmrc ファイルを使うことで、他の開発者がパッケージを GitHub Packages ではなく npmjs.org に誤って公開することを防止できます。
-
GitHub Packagesに認証を受けてく� さい。 詳細については、「GitHub Packages への認証」を参照してく� さい。 2.
package.json
ファイルと同じディレクトリで、.npmrc
ファイルを作成するか編集し、GitHub Packages URL とアカウント所有者を指定する行を含めます。OWNER
を、プロジェクトを含むリポジトリを所有しているユーザーもしくは組織アカウント名で置換します。サブドメイン分離が有効な� �合:
@OWNER:registry=https://npm.HOSTNAME
Subdomain Isolationが無効な� �合:
@OWNER:registry=https://HOSTNAME/_registry/npm
-
GitHub Packages でプロジェクトを見つけられるリポジトリに .npmrc ファイルを追� します。 詳細については、「リポジトリにファイルを追� する」を参照してく� さい。
-
プロジェクトの package.json にあるパッケージの名前を確認します。
name
フィールドには、スコープとパッケージの名前が含まれている必要があります。 たとえば、パッケージの名前が "test" で、"My-org" GitHub Organization に公開する� �合、package.json のname
フィールドは@my-org/test
にする必要があります。 -
プロジェクトの package.json の
repository
フィールドを確認します。repository
フィールドは、GitHub リポジトリの URL と一致している必要があります。 たとえば、リポジトリの URL がgithub.com/my-org/test
である� �合、repository フィールドはhttps://github.com/my-org/test.git
でなければなりません。 1. パッケージを公開してく� さい。$ npm publish
package.json ファイルでの publishConfig
を使用したパッケージの公開
package.json ファイルで publishConfig
要� を使用して、パッケージを公開するレジストリを指定できます。 詳細については、npm ドキュメントの「publishConfig」を参照してく� さい。
-
パッケージの package.json ファイルを編集して、
publishConfig
のエントリを含めるようにします。 インスタンスで Subdomain Isolation が有効になっている� �合:"publishConfig": { "registry": "https://npm.HOSTNAME/" },
インスタンスで Subdomain Isolation が無効になっている� �合:
"publishConfig": { "registry": "https://HOSTNAME/_registry/npm/" },
- プロジェクトの package.json の
repository
フィールドを確認します。repository
フィールドは、GitHub リポジトリの URL と一致している必要があります。 たとえば、リポジトリの URL がgithub.com/my-org/test
である� �合、repository フィールドはhttps://github.com/my-org/test.git
でなければなりません。 1. パッケージを公開してく� さい。
$ npm publish
- プロジェクトの package.json の
同じリポジトリへの複数パッケージの公開
複数のパッケージを同じリポジトリに公開する� �合は、GitHub リポジトリの URL を、各パッケージの package.json ファイルの repository
フィールドに含めます。
リポジトリのURLが正しいことを確認するには、REPOSITORYを公開したいパッケージを含むリポジトリ名で、OWNERをリポジトリを所有しているGitHubのユーザもしくはOrganizationアカウント名で置き換えてく� さい。
GitHub Packages は、パッケージ名の代わりに、このURLを元にしてリポジトリを照合します。
"repository":"https://HOSTNAME/OWNER/REPOSITORY",
パッケージのインストール
プロジェクトの package.json ファイルに依存関係としてパッケージを追� することで、GitHub Packages からパッケージをインストールできます。 プロジェクトで package.json を使用する方法について詳しくは、package.json の利用に関する npm のドキュメントをご覧く� さい。
デフォルトでは、パッケージは1つのOrganizationから追� できます。 詳しくは、「他の Organization からのパッケージのインストール」をご覧く� さい。
プロジェクトに .npmrc ファイルを追� して、パッケージをインストールするためのすべての要求が GitHub Packages を経由するようにする必要もあります。 すべてのパッケージ要求を GitHub Packages 経由になるようにルーティングすると、npmjs.org のスコープ付きおよびスコープなしのパッケージをどちらも使用できるようになります。詳しくは、npm のスコープに関する npm のドキュメントをご覧く� さい。
-
GitHub Packagesに認証を受けてく� さい。 詳細については、「GitHub Packages への認証」を参照してく� さい。 2.
package.json
ファイルと同じディレクトリで、.npmrc
ファイルを作成するか編集し、GitHub Packages URL とアカウント所有者を指定する行を含めます。OWNER
を、プロジェクトを含むリポジトリを所有しているユーザーもしくは組織アカウント名で置換します。サブドメイン分離が有効な� �合:
@OWNER:registry=https://npm.HOSTNAME
Subdomain Isolationが無効な� �合:
@OWNER:registry=https://HOSTNAME/_registry/npm
-
GitHub Packages でプロジェクトを見つけられるリポジトリに .npmrc ファイルを追� します。 詳細については、「リポジトリにファイルを追� する」を参照してく� さい。
-
インストールするパッケージを使用するように、プロジェクトの package.json を構成します。 GitHub Packages のためにパッケージの依存関係を package.json ファイルに追� するには、
@my-org/server
のように完全なスコープ付きのパッケージ名を指定してく� さい。 npmjs.com のパッケージの� �合は、@babel/core
または@lodash
のように完全な名前を指定してく� さい。<organization_name>/<package_name>
をパッケージの依存関係と置き換えます。{ "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" } }
-
パッケージをインストールします。
$ npm install
他のOrganizationからのパッケージのインストール
デフォルトでは、1つのOrganizationからのみGitHub Packagesパッケージを利用できます。 パッケージ要求を複数の組織とユーザーにルーティングする� �合は、 .npmrc ファイルに行を追� できます。HOSTNAME は your GitHub Enterprise Server instance のホスト名に、OWNER はプロジェクトが含まれているリポジトリを所有するユーザーまたは組織アカウントの名前に置き換えます。
インスタンスで Subdomain Isolation が有効になっている� �合:
@OWNER:registry=https://npm.HOSTNAME
@OWNER:registry=https://npm.HOSTNAME
インスタンスで Subdomain Isolation が無効になっている� �合:
@OWNER:registry=https://HOSTNAME/_registry/npm
@OWNER:registry=https://HOSTNAME/_registry/npm
公式NPMレジストリを使用する
GitHub Packages では、registry.npmjs.com
の公式 NPM レジストリにアクセスできます (GitHub Enterprise Server 管理者がこの機能を有効にしている� �合)。 詳しくは、「公式 NPM レジストリに接続する」をご覧く� さい。