私は依存関係として他のプライベート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"
}
それを行う正しい方法は何ですか?
以下は、私が必要とするすべてのシナリオでうまく機能しました。
"dependencies": {
"GitRepo": "git+https://<token-from-github>:[email protected]/<user>/<GitRepo>.git"
}
これを試して:
"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の資料 から取得
パブリックディレクトリのためにここに来たあなた方のために、npmドキュメントから: https://docs.npmjs.com/files/package.json#git-urls-as-dependencies
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です。
受け入れられた答えはうまくいきますが、私は安全なトークンを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設定変数として設定するだけです。
人々が指摘するようにそれをする複数の方法がありますが、最も短いバージョンは次のとおりです:
// 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",
}
"dependencies": {
"some-package": "github:github_username/some-package"
}
あるいは単に
"dependencies": {
"some-package": "github_username/some-package"
}
Gitはボンネットの下でcurl
を使っているので、あなたは~/.netrc
ファイルを資格情報と共に使うことができます。 GitHubの場合、これは次のようになります。
machine github.com
login <github username>
password <password OR github access token>
access tokens
を使用することを選択した場合、それは以下から生成できます。
設定 - >開発者設定 - >個人用アクセストークン
あなたが自分の会社でGithub Enterpriseを使っているならば、これはまた働くべきです。企業のgithubのURLをmachine
フィールドに入力するだけです。
私の個人的なリポジトリ参照のために私は安全なトークンを含めたくありませんでした、そして他の単純なもの(すなわち、package.jsonだけで指定すること)のどれも働かなかった。これはうまくいったことです:
これはpackage.json
ファイルに公開せずにGithubトークンを使用する方法のより詳細なバージョンです。
git config --global url."https://<TOKEN HERE>:[email protected]/".insteadOf https://[email protected]/
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
コマンドを実行してみてください。