我试图通过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"
}
正确的做法是什么?
试试这个:
"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文档
正如人们指出的,有多种方法可以做到这一点,但最短的版本是:
// 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",
}
接受的答案是可行的,但我不太喜欢将安全令牌粘贴到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配置变量。
下面是一个更详细的版本,关于如何使用Github令牌而不发布在包中。json文件。
创建个人github访问令牌
在~/.gitconfig中重写安装url
git config --global url."https://<TOKEN HERE>:x-oauth-basic@github.com/".insteadOf https://x-oauth-basic@github.com/
安装私有存储库。用于调试访问错误的详细日志级别。
npm install --loglevel verbose --save git+https://x-oauth-basic@github.com/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27
如果访问Github失败,尝试运行git ls-remote…命令NPM install将打印