Github Packages に npm パッケージを非公開で登録する

package.json を修正して Github Packagesにパッケージを登録できるように設定する

  • nameを「@ユーザー名/パッケージ名」に変更

  • publishConfig.registry を Github Packages用のURLに修正

"name": "@ユーザー名/パッケージ名",
"publishConfig": {
    "registry":"https://npm.pkg.github.com/@ユーザー名"
},

git pushしたらRegistryに登録するようにGithub Actionsの設定を追加

ファイル: .github/workflows/publish-to-private.yaml

name: "publish"
on:
  push:
    branches:
      - main
jobs:
  publish-gpr:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 18.7.0
          registry-url: https://npm.pkg.github.com/
          scope: '@ユーザー名'
      - run: npm install
      - run: npm build # ビルドスクリプト
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

登録したnpmパッケージをインストールする

  • インストールしたいプロジェクトの package.json に dependencies を追加

    • yarn add @ユーザー名/パッケージ名

  • Githubでパーソナルアクセストークンを発行

    • スコープは : read:packages

  • .npmrc を追加

ファイル名: .npmrc

@ユーザー名:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=パーソナルアクセストークン