トップ/記事一覧
GitHub Package Registry にパッケージを公開する
📆2021/01/30(最終更新日:2021/02/13)
⚠ この記事は最終更新日から1年以上が経過しています。内容が古い箇所がある可能性があるためご注意ください。
GitHub Package Registry がとても便利だよという話の第二弾。前回の記事は 「GitHub Package Registry の認証を通して yarn install する」で、private なパッケージを手元に取り込む方法について解説しました。今回の記事では、パッケージをどのように公開するのかについて解説したいと思います。
公開したいパッケージの package.json を編集する
package.json に以下のようなコードを追加します。
JavaScript
"publishConfig": { "registry": "https://npm.pkg.github.com/" }, "repository": { "type": "git", "url": "[email protected]:[チーム名 or アカウント名]/[リポジトリ名].git" },
npm publish コマンドで公開するときのレジストリが、デフォルトだと npm のレジストリを向いているので、それを github package registry に向き先を変えてやる必要があります(これをしないと、www.npmjs.com にパッケージが公開されてしまいます)また、対象となる repository を指定します。これが誤っているとエラーになります。
その他の設定については、npm にパッケージを公開する場合と同様なのでここでは詳細な説明は割愛します(追記:これだけはよくあるので書いておく → チームで管理する場合には、name は @[チーム名]/[パッケージ名] とするのが慣例です)
公開したパッケージを確認する
npm publish コマンドを叩けば、github package registry に公開されます。公開されたパッケージは、Packages タブに表示されます。public / private に関しては、リポジトリの設定に依存します。private なリポジトリは、public にして公開することはできません(公開したいパッケージは npm に公開すると思うので、そのようなユースケースはあまりなさそうですが。基本的に、チーム内で使用する private なパッケージのみ管理するのがオススメです。)
GitHub Actions による自動化
手元で npm publish コマンドを叩くと、想定外のタイミングで公開されてしまったり、ログを追いづらかったりと、問題があるため、CI(ここでは GitHub Actions)を用いて自動化することをオススメします。以下、サンプルです。
JavaScript
name: Node.js Package on: release: types: [created] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 # GitHub パッケージに公開する .npmrc ファイルを設定する - uses: actions/setup-node@v1 with: node-version: '12.x' registry-url: 'https://npm.pkg.github.com' # デフォルトはワークフローファイルを所有するユーザまたは Organization scope: '@octocat' - run: npm install - run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}