我试图通过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网址放在机器字段。

其他回答

正如人们指出的,有多种方法可以做到这一点,但最短的版本是:

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

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

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

// private repo
"depName": "git+https://[TOKEN]:x-oauth-basic@github.com/user/repo.git"

如。

"dependencies" : {
  "hexo-renderer-marked": "amejiarosario/dsa.jsd#book",
  "hexo-renderer-marked": "amejiarosario/dsa.js#8ea61ce",
  "hexo-renderer-marked": "amejiarosario/dsa.js",
}
"dependencies": {
  "some-package": "github:github_username/some-package"
}

或者只是

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

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

接受的答案是可行的,但我不太喜欢将安全令牌粘贴到package.json中的想法

我在其他地方找到了它,只需运行git-config manpage中记录的这个一次性命令。

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

GITHUB_TOKEN可以设置为环境变量或直接粘贴

然后我安装私人github回购像:npm install user/repo—save


也适用于Heroku,只需设置上面的git配置…命令作为heroku预构建脚本包。将GITHUB_TOKEN设置为Heroku配置变量。

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

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

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

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

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

请注意,你试图作为依赖项添加到你的包的github回购。Json文件需要有自己的包。Json文件定义。