LoginSignup
21

More than 5 years have passed since last update.

githubのprivate repositoryをnpmでインストールする

Posted at

private repositoryで依存関係がある場合、
git submodule等を使う方法もありますが、手間がかかりました。
他のモジュールと同様に扱いたいです。

やりかた

まず、最終形から紹介。

{
  "dependencies": {
    "<modulename>": "git+https://<token>:x-oauth-basic@github.com/<username>/<reponame>#<tagname>"
  }
}

他のモジュールと同じようにかけます。

各設定値

設定値 説明 備考
modulename そのrepositoryの package.jsonのname
username そのrepositoryのowner名
reponame そのrepository名
tagname 利用したいタグ/ブランチ名 #を含めて省略するとmasterブランチを意味する
token githubのpersonal access token 後述

personal access token

personal access tokenは、自身の権限で、githubの諸々の操作をするための文字列です。

から設定できます。

詳細な設定方法は下記の記事が参考になります。
http://qiita.com/kz800/items/497ec70bff3e555dacd0

このとき、「repo」に権限を与えておけば、充分です。

select scopes

しかしmonorepoへ

このようなやり方で、結合を減らすのはとてもよいやり方と思っていました。
しかし、頻繁なバージョン変更が必要になるなど、ときに機動力を遅くします。
内部でしか使わないことが保証されているのであれば、最近では、lernaなどを使った、monorepoというスタイルが受け入れられてきているようです。

より自然なやり方というメリット

monorepoは便利で魅力的ですが、symbolic linkを張ることに起因した、
特殊な環境であることを考慮する必要があるでしょう。
自然なやり方で、ということでしたら、このやり方もありだと思います。

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
21