web-dev-qa-db-ja.com

npmはpackage.jsonの中の依存関係でプライベートgithubリポジトリをインストールします

私は依存関係として他のプライベートgithubリポジトリを含むnpmによってgithubプライベートリポジトリをインストールしようとしています。

たくさんの方法や投稿を試したが、どれもうまくいっていない。これが私がやっていることです:

npm install git+https://github.com/myusername/mygitrepository.git

package.jsonでは、次のようになります。

"dependencies": {
    "repository1name": "git+https://github.com/myusername/repository1.git",
    "repository2name": "git+https://github.com/myusername/repository2.git"
}

それを行う正しい方法は何ですか?

179
vashishatashu

以下は、私が必要とするすべてのシナリオでうまく機能しました。

"dependencies": {
"GitRepo": "git+https://<token-from-github>:[email protected]/<user>/<GitRepo>.git"
}
76
vashishatashu

これを試して:

"dependencies" : {
  "name1" : "git://github.com/user/project.git#commit-ish",
  "name2" : "git://github.com/user/project.git#commit-ish"
}

Visionmedia/expressがname/repoの場合、これを試すこともできます。

"dependencies" : {
   "express" : "visionmedia/express"
}

または(npmパッケージモジュールが存在する場合)

"dependencies" : {
  "name": "*"
}

NPMの資料 から取得

130
leko

パブリックディレクトリのためにここに来たあなた方のために、npmドキュメントから: https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

依存関係としてのGit URL

GitのURLは次の形式になります。

git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+ssh://user@hostname/project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish

Commit-ishは、git checkoutの引数として指定できるタグ、sha、ブランチのいずれでも構いません。デフォルトはmasterです。

60
mummybot

受け入れられた答えはうまくいきますが、私は安全なトークンをpackage.jsonに貼り付けるという考えはあまり好きではありません。

私は他の場所でそれを見つけました、ちょうどこの一回限りのコマンド git-configのマンページで文書化されているように を実行してください。

git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf [email protected]:

GITHUB_TOKENは、環境変数として設定するか直接貼り付けることができます。

それから私は次のようなプライベートgithubリポジトリをインストールします。npm install user/repo --save


herokuでも動作します。上記のgit config ...コマンドをheroku-prebuild内のpackage.jsonスクリプトとして設定し、GITHUB_TOKENをHeroku設定変数として設定するだけです。

48
Michal Moravcik

人々が指摘するようにそれをする複数の方法がありますが、最も短いバージョンは次のとおりです:

// from master
"depName": "user/repo",

// specific branch
"depName": "user/repo#branch",

// specific commit
"depName": "user/repo#commit",

例えば.

"dependencies" : {
  "hexo-renderer-marked": "amejiarosario/hexo-renderer-marked#patch-1",
  "hexo-renderer-marked": "amejiarosario/hexo-renderer-marked#2249507",
  "hexo-renderer-marked": "amejiarosario/hexo-renderer-marked",
}
33
Adrian
"dependencies": {
  "some-package": "github:github_username/some-package"
}

あるいは単に

"dependencies": {
  "some-package": "github_username/some-package"
}

https://docs.npmjs.com/files/package.json#github-urls

23
Rayron Victor

Gitはボンネットの下でcurlを使っているので、あなたは~/.netrcファイルを資格情報と共に使うことができます。 GitHubの場合、これは次のようになります。

machine github.com
  login <github username>
  password <password OR github access token>

access tokensを使用することを選択した場合、それは以下から生成できます。

設定 - >開発者設定 - >個人用アクセストークン

あなたが自分の会社でGithub Enterpriseを使っているならば、これはまた働くべきです。企業のgithubのURLをmachineフィールドに入力するだけです。

5
Leon li

私の個人的なリポジトリ参照のために私は安全なトークンを含めたくありませんでした、そして他の単純なもの(すなわち、package.jsonだけで指定すること)のどれも働かなかった。これはうまくいったことです:

  1. GitHub.comに行きました
  2. プライベートリポジトリに移動します
  3. [クローンまたはダウンロード]をクリックしてURLをコピーしました(上記の例と一致しません)。
  4. #commit-shaを追加しました
  5. Ran npm install
1
The Coder

これはpackage.jsonファイルに公開せずにGithubトークンを使用する方法のより詳細なバージョンです。

  1. 個人用Githubアクセストークンを作成する
  2. セットアップURLを〜/ .gitconfigに書き換えます。
git config --global url."https://<TOKEN HERE>:[email protected]/".insteadOf https://[email protected]/
  1. プライベートリポジトリをインストールします。アクセスエラーをデバッグするための詳細なログレベル。
npm install --loglevel verbose --save git+https://[email protected]/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27

Githubへのアクセスが失敗した場合は、git ls-remote ...コマンドを実行してnpm install will printコマンドを実行してみてください。

1
Martins Balodis