less than 1 minute read

自分のみに公開して複数のリポジトリから使えるプライベートなライブラリを公開したい。そんなときに使えるGitHub Packages。

GitHub Packagesに公開

package.jsonが重要。やりかたを失念したので割愛するが、以下の記事を参考にした記憶がある。

たしかnpm publishの実行で比較的簡単にできた気がする。

GitHub Packagesの利用

手順は以下。

  1. read:packagesのトークンを取得
  2. 読み込む側に.npmrcを用意
  3. パッケージをインストール
  4. 利用する

read:packagesのトークンを取得

GitHubにアクセスし、 右上の自分のプロフィールアイコンより Settings > Developer settings > Personal access tokens の順にアクセス。 Generate new token > Generate new token(classic) を選択

ここではアップロードまで行うためread:packagesにチェックを入れGenerate tokenにする。

読み込む側に.npmrcを用意

.npmrcとはnpmレジストリ(今回であればGitHub Packages)からダウンロードする際の設定などを記載出来るファイルでread:packagesを内包したトークンの値を記載する。

@{GitHubのユーザー名 or 組織名}:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=<取得したトークンの値>

自分の場合は環境変数を使う形で以下のように記載。

@yk4neko:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${PACKAGES_AUTH_TOKEN}

パッケージをインストール

> npm install @{GitHubのユーザー名 or 組織名}/{リポジトリ名}
# or
> yarn add @{GitHubのユーザー名 or 組織名}/{リポジトリ名}

自分の環境ではyarnを使ってたので、以下のように実行。

yarn add @yk4neko/hogelib

利用する

ここでもimport時の指定は'@{GitHubのユーザー名 or 組織名}/{リポジトリ名}'となる。

import techan from "@yk4neko/hogelib";
window.hogelib = hogelib;

importでエラーが起きずに使用できれば成功。

参考