GitHub Packages の npm レジストリに、プライベートパッケージを公開したことがなかったのでやってみた
躓いたのは権限周り
事前準備として以下をしっかり確認する
- GitHub Organization の管理者権限があること
- GitHub の Personal Access Token (PAT) を作成する際に、以下の権限があること
- Scope:
read:packages,write:packages,repo(プライベートリポジトリの場合)
- Scope:
あとは以下の手順に沿えば公開することができる
.npmrc の設定
~/.npmrc かプロジェクト内に .npmrc を作成し、以下を追加:
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
@your-org:registry=https://npm.pkg.github.com/
ポイント
package.json の設定
パッケージを スコープ付きパッケージ にする。
{ "name": "@your-org/my-private-package", "version": "1.0.0", "description": "社内用のプライベートパッケージ", "repository": { "type": "git", "url": "https://github.com/your-org/my-private-package.git" }, "publishConfig": { "registry": "https://npm.pkg.github.com/" } }
ポイント
nameは@your-org/package-name形式にするpublishConfig.registryをhttps://npm.pkg.github.com/に設定
パッケージの公開
npm publish を実行
npm publish
成功すると、GitHub Packages にパッケージが公開される
プライベートパッケージのインストール手順
.npmrc の設定
使う側がパッケージをインストールするために、.npmrc を設定
@your-org:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
インストール
npm install @your-org/my-private-package
この手順で、社内用のプライベート npm パッケージを GitHub Packages に公開・インストールすることができた
参考
GitHub Packages の npm レジストリを使って、社内 org 用のプライベートパッケージを公開する手順とインストールする手順