web-dev-qa-db-ja.com

npm依存としてプライベートGithubリポジトリを使用する方法

プライベートGithubリポジトリを"dependency"package.jsonとしてリストするにはどうすればいいですか?私は npmのGithub URLryanve/exampleのような構文を試しましたが、packageフォルダでnpm installをすると個人的な依存関係のための "インストールできませんでした"エラーが出ます。プライベートリポジトリに依存するための特別な構文(または他の何らかのメカニズム)はありますか?

163
ryanve

それは httpsとoauthまたはsshで行うことができます。

httpsとoauth:アクセストークンを作成します "repo"スコープを持ち、そして この構文を使います =:

"package-name": "git+https://<github_token>:[email protected]/<user>/<repo>.git"

または

ssh:setup ssh そして次の構文を使います。

"package-name": "git+ssh://[email protected]:<user>/<repo>.git"

(ユーザーの前にスラッシュの代わりにコロンを使用することに注意してください)

235
ryanve

誰かがGit Labに別の選択肢を探していても上記の選択肢がうまくいかない場合は、別の選択肢があります。 Git Labサーバーのローカルインストールの場合、以下の方法でパッケージの依存関係を含めることができることがわかりました。そのためにアクセストークンを生成して使用しました。

$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere

もちろん、この方法でアクセスキーを使用している場合、アクセス権は限られているはずです。

がんばろう!

20
Steve M

Gitではhttps形式があります

https://github.com/equivalent/we_demand_serverless_Ruby.git

この形式はユーザー+パスワードを受け入れます

https://bot-user:[email protected]/equivalent/we_demand_serverless_Ruby.git

それで、あなたがすることができる新しいユーザーを作成することですボットとして、彼がNPMモジュールにロードしたいリポジトリをただ読むことができるだけの十分な許可だけを追加して、ただ直接それを持つあなたのpackages.json

 Github > Click on Profile > Settings > Developer settings > Personal access tokens > Generate new token

Select Scopesパートで、オンにしますrepo:プライベートリポジトリのフルコントロール

これはtokenがユーザーが見ることができるプライベートリポジトリにアクセスできるようにするためです。

組織に新しいグループを作成し、このユーザーをグループに追加して、この方法でプルされると予想されるリポジトリのみを追加します(読み取り専用アクセス許可)。

あなたはこの設定をプッシュすることを確実にする必要がありますプライベートリポジトリにのみ

その後、これをあなたの/ packages.jsonに追加できます(bot-userはユーザー名、xxxxxxxxxは生成された個人トークンです)。

// packages.json


{
  // ....
    "name_of_my_lib": "https://bot-user:[email protected]/ghuser/name_of_my_lib.git"
  // ...
}

https://blog.eq8.eu/til/pull-git-private-repo-from-github-from-npm-modules-or-bundler.html

6
equivalent8