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」に権限を与えておけば、充分です。
しかしmonorepoへ
このようなやり方で、結合を減らすのはとてもよいやり方と思っていました。
しかし、頻繁なバージョン変更が必要になるなど、ときに機動力を遅くします。
内部でしか使わないことが保証されているのであれば、最近では、lernaなどを使った、monorepoというスタイルが受け入れられてきているようです。
より自然なやり方というメリット
monorepoは便利で魅力的ですが、symbolic linkを張ることに起因した、
特殊な環境であることを考慮する必要があるでしょう。
自然なやり方で、ということでしたら、このやり方もありだと思います。