如何列出一个私人Github上回购为"dependency"
中package.json
?我尝试了npm的Github URL语法,例如ryanve/example
,但是npm install
在package文件夹中这样做会导致私有依赖项出现“无法安装”错误。是否有一种特殊的语法(或其他某种机制)取决于私有存储库?
如何列出一个私人Github上回购为"dependency"
中package.json
?我尝试了npm的Github URL语法,例如ryanve/example
,但是npm install
在package文件夹中这样做会导致私有依赖项出现“无法安装”错误。是否有一种特殊的语法(或其他某种机制)取决于私有存储库?
Answers:
可以通过https和oauth 或 ssh完成。
https和oauth: 创建具有“回购”范围的访问令牌,然后使用以下语法:
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"
要么
ssh: 设置ssh,然后使用以下语法:
"package-name": "git+ssh://git@github.com:<user>/<repo>.git"
(请注意在用户之前使用冒号而不是斜杠)
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"
没有为我工作。令人惊讶的是,切换令牌和x-oauth-basic可以完成这项工作。所以,"package-name": "git+https://x-oauth-basic:<github_token>@github.com/<user>/<repo>.git"
为我工作。请注意,我在gitlab而不是github上。
https
把x-oauth-basic
作为用户名是没有必要的:"package-name": "git+https://<github_token>@github.com/<user>/<repo>.git"
工作为好。
使用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
在“选择合并范围”部分中,检查on repo:完全控制私有存储库
这样令牌可以访问用户可以看到的私有仓库
现在,在您的组织中创建新的组,将此用户添加到该组中,并仅添加您希望以这种方式提取的存储库(“只读”权限!)
您需要确保仅将此配置推送到私有仓库
然后,可以将其添加到/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
"<package>": "git+ssh://git@github.com/<user>/<repo>.git