LoginSignup
5

More than 1 year has passed since last update.

posted at

updated at

Organization

YarnでGitHubプライベートリポジトリをyarn addする方法

この投稿では、YarnでGitHubプライベートリポジトリへの依存を追加する方法を説明します。

使用するYarn

本稿で説明する手順はYarn v1.22.17を前提とします。Yarn v2、v3ではやり方が異なるかもしれません。未検証です。

YarnでGitHubプライベートリポジトリをyarn addする方法

プライベートリポジトリのURLを取得する

依存に追加したいGitHubプライベートリポジトリを開き、「Code」→「SSH」タブからGitのURLをコピーします。

20220316_142552.png

次の形式のURLが得られるはずなので控えておきます。

git@github.com:ORG/REPO.git

どのGitブランチやコミットに依存したいか決める

YarnではGitリポジトリへの依存を追加する際、ブランチやコミットハッシュを指定できます。

その場合、上で得られたURLに#でブランチ名を指定します。

$URL
git@github.com:ORG/REPO.git#BRANCH_NAME_OR_HASH

たとえば、mainブランチへの依存であれば次のようになります。

git@github.com:ORG/REPO.git#main

パッケージ名を決める

yarn addでGitHubリポジトリへの依存を追加した場合、パッケージ名はリポジトリ名になります。たとえば、GitHubリポジトリがmy-company/my-projectの場合、package.jsonには"my-project"として追加されます。

package.json
{
  "dependecies": {
    "my-project": "git+ssh://github.com/...",

たとえば、極端な例ですが、自社のリポジトリ名がmy-company/typescriptだったりすると、Microsoftのtypescriptとバッティングするので、そういった場合はパッケージ名をかぶらないものにする必要があります。

パッケージ名はなんでも構いませんが、おすすめは会社名などをスコープにしたものです:

$PKG
@SCOPE/MODULE

たとえば、会社名がcraftsman-softwareでリポジトリ名がcommonなら次のような形式にします。

@craftsman-software/common

Yarnが解決可能な形式を組み立てる

上で作った文字列$URL$PKGを使って、yarn addが解釈できる文字列を組み立てます。

"$PKG@git+ssh://$URL"

たとえば、$PKG@craftsman-software/commonで、$URLgit@github.com:craftsman-software/common.git#mainの場合、次の文字列になります。

"@craftsman-software/common@git+ssh://git@github.com:craftsman-software/common.git#main"

yarn addする

あとは、上で得られた文字列を引数にyarn addするだけです:

yarn add "$PKG@git+ssh://$URL"

これを実行すると、通常のNPMモジュールと同じようにnode_modulesにコードがインストールされます。

おまけ

パッケージをアップグレードする方法

mainブランチを指定するなどしてyarn addした場合に、ブランチをアップデートしたい場合は、yarn upgradeを実行するだけです。

yarn upgrade $PKG

たとえば、@craftsman-software/commonという名前でyarn addしたのであれば、

yarn upgrade @craftsman-software/common

とすると、最新のコミットを取得してインストールしなおしてくれます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5