12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-03-16

この投稿では、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

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

12
5
0

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
  3. You can use dark theme
What you can do with signing up
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?