社内プロジェクトなどで、共通の処理をライブラリとして切り出したいが、そのライブラリもクローズドにしたいのでパブリッシュできない。というケースを想定している。
package.json
は、ライブラリのGitリポジトリのパスを指定することも出来るので、それを利用する。
プライベートリポジトリでも問題なく動く。
この記事では、GitのホスティングサービスとしてGitHubを用いる。
リポジトリのパスを指定してインストールする
題材として、私が公開しているeslint-config-numb
をインストールしてみる。
以下でインストールできる。
$ yarn add -D git+https://github.com/numb86/eslint-config-numb.git
$ cat node_modules/eslint-config-numb/package.json
でインストールされたpackage.json
を確認してみると、現時点での最新バージョンである2.0.0
が入っていることが分かる。
末尾に#{TAG_NAME}
をつけることでタグを指定することも出来る。
以下のコマンドを打つと、1.x
の最新バージョンである1.0.2
が入る。
もちろん#1.0.1
のようにパッチバージョンまで明示的に指定することも出来る。
$ yarn add -D git+https://github.com/numb86/eslint-config-numb.git#1
プライベートリポジトリ
プライベートリポジトリでも、全く同じように利用できる。
念の為、認証していないユーザーではインストールできないことを確認してみる。
自分の環境(macOS Mojave 10.14.2
)では GitHub のパスワードは「キーチェーンアクセス.app」に保存されている。
「キーチェーンアクセス.app」は以下のコマンドで開ける。
$ open /Applications/Utilities/Keychain\ Access.app
一覧の中からgithub.com
を探して、削除する。
この状態でプライベートリポジトリをインストールしようとするとエラーになる。
fatal: could not read Username for 'https://github.com': terminal prompts disabled
再び「キーチェーンアクセス.app」にパスワードを登録するためには、適当なリポジトリでpush
やpull
をすればユーザー名とパスワードを求められるので、それを入力すると「キーチェーンアクセス.app」にも保存される。