Posted at
CureAppDay 4

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

More than 1 year has passed since last update.

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の諸々の操作をするための文字列です。

https://github.com/settings/tokens/

から設定できます。

詳細な設定方法は下記の記事が参考になります。

http://qiita.com/kz800/items/497ec70bff3e555dacd0

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

select scopes


しかしmonorepoへ

このようなやり方で、結合を減らすのはとてもよいやり方と思っていました。

しかし、頻繁なバージョン変更が必要になるなど、ときに機動力を遅くします。

内部でしか使わないことが保証されているのであれば、最近では、lernaなどを使った、monorepoというスタイルが受け入れられてきているようです。


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

monorepoは便利で魅力的ですが、symbolic linkを張ることに起因した、

特殊な環境であることを考慮する必要があるでしょう。

自然なやり方で、ということでしたら、このやり方もありだと思います。