当前位置: 首页 > 知识库问答 >
问题:

如何使用私有Github repo作为npm依赖项

洪凯定
2023-03-14

如何在包中将私有Github repo列为的“依赖项”。json?我尝试了npm的Github URL语法,比如ryanve/example,但是在包文件夹中执行npm安装会导致私有依赖项出现“无法安装”错误。是否有一种特殊的语法(或其他机制)来依赖私有回购协议?

共有3个答案

长孙燕七
2023-03-14

git有一种https格式

https://github.com/equivalent/we_demand_serverless_ruby.git

此格式接受用户密码

https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/equivalent/we_demand_serverless_ruby.git

所以你可以做的是创建一个新用户,它将被用作机器人,只添加足够的权限,让他可以读取你想加载在NPM模块中的存储库,并直接在你的packages.json

 Github > Click on Profile > Settings > Developer settings > Personal access tokens > Generate new token

在“选择作用域”部分中,检查on repo:私有存储库的完全控制

这是为了令牌可以访问用户可以看到的私人回购

现在在您的组织中创建新组,将此用户添加到组中,并仅添加您期望以这种方式拉取的存储库(仅读权限!)

您需要确保将此配置仅推送到私人回购

然后您可以将其添加到您的/包中。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

池照
2023-03-14

如果有人正在为Git Lab寻找另一个选项,而上面的选项不起作用,那么我们还有另一个选项。对于Git Lab server的本地安装,我们发现下面的方法允许我们包含包依赖性。我们生成并使用一个访问令牌来执行此操作。

$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere

当然,如果以这种方式使用访问密钥,那么它应该具有有限的权限集。

祝你好运!

柏高洁
2023-03-14

它可以通过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"

(注意在用户之前使用冒号而不是斜杠)

 类似资料:
  • npm是否有安装依赖作为对等依赖的选项,如yarn选项,而不是手动添加它例如: 感谢@Broncha,更新问题的更多说明 问题是如何向项目添加对等依赖。那就是 将依赖项添加到package.json中的“dependencies”中, 如何安装将其添加到package.json?中的“对等依赖”的依赖项

  • 问题内容: 我想问问是否有可能(通常是一个好主意)使用npm处理前端依赖项(Backbone,jQuery)。 我发现Backbone,jQuery等都可以通过npm获得,但我必须设置另一个提取点(默认为)或symlink或其他东西。 有人做过吗? 可能吗? 我必须更改什么? 问题答案: 简短的答案: 有点 。 在很大程度上要由模块作者来支持,但这并不常见。Socket.io是此类支持模块的示例,

  • 我有一个错误的: 您的需求无法解析为一组可安装的包。 问题1-我的/包dev-master的安装请求- 潜在原因: 包名中的一个错别字 根据您的最小稳定性设置,该包没有足够稳定的版本,请参阅https://getcomposer.org/doc/04-schema.md#minimum-stability了解更多详细信息。 这是一个私人包,你忘了添加一个自定义存储库来查找它 我的包/作曲家。jso

  • 问题内容: 我正在尝试通过npm安装github私有存储库,其中包括其他私有github存储库作为依赖项。 尝试了很多方法和帖子,但是都没有用。这是我在做什么: 在package.json中就像: 正确的方法是什么? 问题答案: 以下在我需要的所有情况下都可以正常工作:

  • 在阅读了很多关于这个问题的文章之后,并遵循了这个非常有用的帖子:在npmpackage.json文件中,依赖关系、devDependence和peerDependence之间有什么区别? 我知道依赖项应该引用每个运行时libs,devdependency引用每个对开发依赖项有用的libs。 但是我现在很困惑。对于生产使用,我将不得不我的Angular应用程序。如果我做了,我甚至不能用编译。我需要,

  • 输出以下警告: 输出 为什么npm抱怨缺少对等依赖? 这个问题与npm package.json文件中的依赖项、devdependency和peerdependency之间的区别不是重复的?。这个问题甚至没有提到,也没有解释在全局包中不搜索。