GitHub Package Registry の認証を通して yarn install する

📆December 18, 2020🔖

  • ハマったのでメモ。正しい情報にたどり着くまで時間がかかってしまった
  • yarn だと npm の場合と比べてちょっと設定が異なるので注意が必要だよという話
  • 前提

  • GitHub Package Registry にホスティングしている社内用非公開パッケージ をホスティングし、yarn install 時にそれらを取得するアーキテクチャに変更
  • 非公開パッケージなので、社外の人には使えないようになっている。ローカルでこのパッケージを取得するには、アクセストークンを手元で登録する必要がある
  • 認証を通す(3ステップ)

    1. repo / read 権限を付与したトークンを作成

  • https://github.com/settings/tokens から、Generate new token を押して、トークンを作成
  • read 権限を付与して、トークンを作成
  • トークンが作成されるので、コピーしておく
  • Generate new token を押す
    Generate new token を押す
    read 権限を付与したトークンを作成
    read 権限を付与したトークンを作成
    トークン作成完了 コピしておく
    トークン作成完了 コピしておく

    2. ログインする

  • npm login --registry=https://npm.pkg.github.com コマンドを叩く
  • Username は、自分の GitHub アカウント
  • Password は先程のコピペしたトークンを貼ってください(⚠ ここが罠 パスワード入力しないように)
  • ログインが通れば成功
  • ログインと言っても、実体としては ~/.npmrc に設定が一行追加されるだけ(なので、直接追記しても OK)
  • .npmrc
    .npmrc

    3. .yarnrc を準備し、yarn install

  • GitHub Private Registry を使用したいリポジトリの直下に .yarnrc ファイルを作成
  • 設定は以下を参考に(yarn コマンドを叩いたときに、GitHub の registry も見に行くようになる)
  • @xxx の部分は、自分のアカウント名、または所属組織名を入力
  • registry "https://registry.npmjs.org"
    "@xxx:registry" "https://npm.pkg.github.com"
  • yarn install する
  • うまく通らないと以下のエラーが出る。出なければ OK
  • Error: Couldn't find package "@japan-culture-and-technology/calchez-models" on the "npm" registry.





    参考

    Stackoverflow とかにもあったけど、誤った情報もけっこうあったので苦戦しました。以下の記事がとても完結にまとまっていて良かったです。

  • Node.js + Github Private Registry

  • 今回は使用する方だったのですが、自分で Private Registry に公開する方法もそのうち記事化したい気持ちです。