見出し画像

GitHub経由でプライベートNPMパッケージを公開する

クリエイター : Prajwol Kc , 株式会社readytowork ネパール支店 チームマネージャー

NPM パッケージを使用する場合、ユースケースに特化したプライベートな NPM パッケージをインストールする必要がある場合があります。このパッケージはプライベートとしてタグ付けされ、私たちのエンティティ以外の一般ユーザーにはインストールされません。

パッケージを作成し、プライベートとしてテストすることができます。以下のステップを踏んでください。

最初のステップは、パッケージをGithubに公開することです。

.github/workflowsフォルダ内にrelease-package.ymlファイルを作成します。

.github/workflows/release-package.yml

サンプルファイル

name: Node.js Package relase

on:
  release:
    types: [created]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: npm ci

  publish-gpr:
    needs: build
    runs-on: ubuntu-latest
    permissions:
      packages: write
      contents: read
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          registry-url: https://npm.pkg.github.com/
      - run: npm ci
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}${{secrets.GITHUB_TOKEN}}

${{secrets.GITHUB_TOKEN}} とします。- これは GitHub トークン生成ツールから生成されたものです。https://github.com/settings/tokens
必要に応じてnpmテストを追加します。— run: npm test
パッケージの変更をコミットして、プライベートリポジトリにプッシュするだけです。
これでパッケージの作業は完了です。これで公開パッケージはプライベートなものになりました。
次に、プライベートパッケージをプロジェクトに追加する必要があります。.npmrcファイルの作成
npmrcファイルの中身は以下のようになります。

# In case of scripbox packages, scope is going to be scripbox
@<scope>:registry = https://npm.pkg.github.com

_authToken = <AUTH_TOKEN>
always-auth = true<scope> should be the repo owner label

<AUTH_TOKEN>は、適切なパーミッションを持つhttps://github.com/settings/tokens
あとは、オーソライズされたレポとなるプライベート・パッケージを

yarn add @xyz/xyz-abc@1.0.0

バージョン番号は、タグとしてパブリッシング・パッケージから取得されます。
現在、私たちのプロジェクトでは、一般からはアクセスされないプライベート・パッケージを使用しています。参考:https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry#installing-a-package


協業開発及び開発パートナーをお探しのお客様へ

弊社は、ネパールに海外拠点を持ち、生成AI、モバイルアプリ、システム開発を中心に事業を展開する企業です。

自社サービスの開発経験を活かし、クライアント様と共に事業を創造することを重視し、創業以来、スタートアップから中小企業、大手企業、自治体まで、幅広い開発実績があります。プロダクトはユーザーが使いやすいように設計しており、企画から開発、保守運用まで対応しています。開発技術を厳選し限定することで、セキュリティ、プロダクトの品質向上に努めており、事業開発に関する課題を深く理解し、最適なご提案が可能です

お問い合わせはこちらから:
お問い合わせフォーム:https://readytowork.jp/ 

直通番号:080-8940-7169