gpt4 book ai didi

git - git+ssh 在 git+ssh ://git@github. com/xxx.git 这样的 npm 存储库路径中意味着什么

转载 作者:行者123 更新时间:2023-12-02 09:54:49 25 4
gpt4 key购买 nike

我看到一个 npm 存储库,在 package.json 中被称为 git+ssh://git@github.com/xxx.git 。我知道这是 ssh 协议(protocol),但我不知道 git+ssh 在克隆存储库时做了什么,我只使用 git@github.com/xxx.git 。我用谷歌搜索了一下,但找不到任何结果。

最佳答案

通过 git 托管 npm 包时,npm 还需要知道使用哪种传输协议(protocol)将包文件从存储库传输到客户端。为此,存在以下选项:ssh、https、http、文件(请参阅 https://docs.npmjs.com/cli/install )。

npm 的创建者决定将此信息放在协议(protocol)名称中,用 + 符号分隔信息,使其变得更加示意性。因此,当 npm install 迭代您的依赖项并看到与 git+ssh 的依赖项时,它知道它将通过 ssh 连接到存储库,然后使用本地 git 二进制文件在本地 checkout 项目文件。

我猜他们也可以将协议(protocol)命名为gitwithssh,如gitwithssh://git@github.com/xxx.git,但git+ssh 看起来更简洁且逻辑上分离,因此更容易通过正则表达式进行解析。

这是 npm 源代码中实际负责将协议(protocol)信息拆分为 type (= git) 和实际协议(protocol)(例如 >ssh): https://github.com/npm/npm-package-arg/blob/v7.0.0/npa.js#L221

I only use git@github.com/xxx.git.

您不能使用此格式将包注册为 npm 的依赖项。尝试执行 npm i git@github.com/xxx.git – 它不会工作。此格式只能用于例如通过git克隆

但是,您可以在使用 ssh 协议(protocol)作为前缀时使用此格式:ssh://git@github.com/xxx.git。这实际上是 npm 在幕后使用的“git+ssh”的“规范化”形式(另请参阅 https://github.com/npm/normalize-git-url 如何将 git+ssh://... 转换为 ssh://git@...).

关于git - git+ssh 在 git+ssh ://git@github. com/xxx.git 这样的 npm 存储库路径中意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com