当前位置:  开发笔记 > 编程语言 > 正文

npm在package.json中依赖安装私有github存储库

如何解决《npm在package.json中依赖安装私有github存储库》经验,为你挑选了7个好方法。

我正在尝试通过npm安装github私有存储库,其中包含其他私有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"
}

这样做的正确方法是什么?



1> leko..:

试试这个:

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


@vashishatashu,关于`致命:模糊论证'commit-ish':未知的修订版或路径不在工作树中.很明显`commit-ish`只是一个示例单词,你应该用`sha`取代您需要的特定提交.(或者如果你需要在主分支中进行最新的提交,则删除`#commit-ish`)

2> vashishatash..:

以下在我需要的所有场景中都运行良好:

"dependencies": {
"GitRepo": "git+https://:x-oauth-basic@github.com//.git"
}


@lan:对于bitbucket,您可以使用以下语法:git clone https:// :x-oauth-basic@bitbucket.org/ / can获取:团队 - >管理团队 - > API密钥
这是一篇关于这种技术的好文章:http://rzrsharp.net/2013/07/02/private-github-repos-with-npm-and-heroku.html

3> mummybot..:

对于那些来到这里公共目录的人,来自npm docs:https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Git URL作为依赖项

Git网址可以是以下形式:

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可以是任何标记,sha或分支,可以作为git checkout的参数提供.默认值为master.



4> Michal Morav..:

接受的答案有效,但我不太喜欢将安全令牌粘贴到 package.json

我在其他地方找到了它,只需运行git-config联机帮助页中记录的这个一次性命令.

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

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

然后我安装私有github repos像: npm install user/repo --save


也可以在Heroku中使用,只需将上面的git config ...命令设置为heroku-prebuild脚本package.json并设置GITHUB_TOKEN为Heroku配置变量.



5> Adrian..:

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

// 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",
}


这是最好的答案!<3直截了当甚至展示不同案例的例子.

6> Rayron Victo..:
"dependencies": {
  "some-package": "github:github_username/some-package"
}

要不就

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

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



7> LeOn - Han L..:

由于Git是curl在后台使用的,因此可以使用~/.netrc带有凭据的文件。对于GitHub,它看起来像这样:

machine github.com
  login 
  password 

如果选择使用access tokens,则可以通过以下方式生成:

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

如果您在自己的公司中使用Github Enterprise,这也应该起作用。只需将您的企业github网址放在machine字段中即可。

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有