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