npm通过package.json中的依赖来安装私人github存储库
我试图通过npm安装github私有存储库,其中包括其他私人github存储库作为依赖。
已经尝试了很多方式和post,但没有任何工作。 这是我在做什么:
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" : { "name1" : "git://github.com/user/project.git#commit-ish", "name2" : "git://github.com/user/project.git#commit-ish" }
你也可以试试这个,其中visionmedia / express是名称/回购:
"dependencies" : { "express" : "visionmedia/express" }
或者(如果npm包模块存在):
"dependencies" : { "name": "*" }
从NPM文档中获得
以下工作很好,在我需要的所有情况下:
"dependencies": { "GitRepo": "git+https://<token-from-github>:x-oauth-basic@github.com/<user>/<GitRepo>.git" }
对于那些来到这里的公共目录,从npm文档: https ://docs.npmjs.com/files/package.json#git-urls-as-dependencies
Git URL作为依赖关系
Git的URL可以是这样的forms:
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或分支。 默认是主。
被接受的答案是有效的,但是我不太喜欢将安全的令牌粘贴到package.json
我已经在其他地方find了它,只要运行这个一次性的命令, 如git-config手册页中所logging的那样 。
git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf git@github.com:
GITHUB_TOKEN
可以设置为环境variables或直接粘贴
然后我安装私人的github仓库,如: npm install user/repo --save
也可以在Heroku中使用,只需在package.json
中将上面的git config ...
命令设置为heroku-prebuild
脚本,并将GITHUB_TOKEN
设置为Herokuconfigurationvariables即可。
有多种方式可以让人们指出,但最简单的版本是:
// 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" }
对于我的私人存储库引用,我不想包括一个安全的令牌,没有其他简单的(即只在package.json指定)工作。 这是什么工作:
- 去了GitHub.com
- 导航到私人存储库
- 点击“克隆或下载”和复制的url(与上面的例子不符)
- 新增了#commit-sha
- 冉npm安装