作者:灬丶领袖 | 来源:互联网 | 2023-05-20 13:38
如何列出一个私人Github上回购为"dependency"
中package.json
?我尝试了npm的Github URL语法ryanve/example
,但是npm install
在package文件夹中进行了私有依赖项的"无法安装"错误.是否有一个特殊的语法(或其他机制)依赖私人回购?
1> ryanve..:
它可以通过https和oauth 或 ssh完成.
https和oauth: 创建具有"repo"范围的访问令牌,然后使用以下语法:
"package-name": "git+https://:x-oauth-basic@github.com//.git"
要么
ssh: setup ssh然后使用以下语法:
"package-name": "git+ssh://git@github.com:/.git"
(注意在用户之前使用冒号而不是斜杠)
添加#master到最后
或者如果你在github上设置了ssh,跳过令牌并使用:`"
":"git + ssh://git@github.com/ / .git`
`"package-name":"git + https:// :x-oauth-basic@github.com/ / .git"`对我不起作用.令人惊讶的是切换令牌和x-oauth-basic完成了这项工作.所以,``package-name":"git + https:// x-oauth-basic: @ github.com// .git"`对我有用.请注意我在gitlab而不是github.
你如何将它始终发布到最新版本?
2> 小智..:
如果有人正在为Git Lab寻找另一个选项并且上面的选项不起作用,那么我们还有另一种选择.对于Git Lab服务器的本地安装,我们发现下面的方法允许我们包含包依赖项.我们生成并使用访问令牌来执行此操作.
$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere
当然,如果一个人以这种方式使用访问密钥,它应该具有一组有限的权限.
祝好运!
3> equivalent8..:
使用git有一个https格式
https://github.com/equivalent/we_demand_serverless_ruby.git
此格式接受用户+密码
https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/equivalent/we_demand_serverless_ruby.git
所以你可以做的是创建一个新的用户,它将被用作机器人,只添加足够的权限,他只需要读取你想要在NPM模块中加载的存储库,直接在你的NPM模块中加载
packages.json
Github > Click on Profile > Settings > Developer settings > Personal access tokens > Generate new token
在Select Scopes部分中,选中on repo:完全控制私有存储库
这样,令牌可以访问用户可以看到的私人回购
现在在组织中创建新组,将此用户添加到组中,并仅添加您希望以这种方式提取的存储库(READ ONLY权限!)
您需要确保仅将此配置推送到私人仓库
然后你可以将它添加到/ packages.json(bot-user是用户名,xxxxxxxxx是生成的个人令牌)
// packages.json
{
// ....
"name_of_my_lib": "https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/ghuser/name_of_my_lib.git"
// ...
}
https://blog.eq8.eu/til/pull-git-private-repo-from-github-from-npm-modules-or-bundler.html