我试图通过npm安装github私有存储库,包括其他私有github存储库作为依赖。

我尝试了很多方法和帖子,但没有一个是有效的。这是我正在做的:

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

在包中。Json是这样的:

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

正确的做法是什么?


当前回答

因为Git在底层使用curl,所以可以使用~/.netrc文件作为凭证。对于GitHub,它看起来像这样:

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

如果你选择使用访问令牌,它可以从:

>开发人员设置->个人访问令牌

如果你在自己的公司使用Github企业,这也应该有效。只要把你的企业github网址放在机器字段。

其他回答

因为Git在底层使用curl,所以可以使用~/.netrc文件作为凭证。对于GitHub,它看起来像这样:

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

如果你选择使用访问令牌,它可以从:

>开发人员设置->个人访问令牌

如果你在自己的公司使用Github企业,这也应该有效。只要把你的企业github网址放在机器字段。

试试这个:

"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文档

如果您想添加既不锚定到master也不锚定到特定提交的依赖项,可以使用semver来完成。像这样:

"dependencies": {
  "some-package": "github:github_username/some-package#semver:^1.0.0"
}

还有SSH密钥-仍然要求密码和密码短语

使用ssh-add ~/。Ssh /id_rsa没有本地keychain。

这样就避免了与令牌纠缠不清。

以下在我需要的所有场景下工作得很好:

"dependencies": {
"GitRepo": "git+https://<token-from-github>:x-oauth-basic@github.com/<user>/<GitRepo>.git"
}