Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从git获取npm包的不同协议_Node.js_Git_Npm - Fatal编程技术网

Node.js 从git获取npm包的不同协议

Node.js 从git获取npm包的不同协议,node.js,git,npm,Node.js,Git,Npm,来自npm文档() 以下内容并不完全清楚: npm install <git remote url>: Installs the package from the hosted git provider, cloning it with git. First it tries via the https (git with github) and if that fails, via ssh. <protocol>://[<user>[:<p

来自npm文档()

以下内容并不完全清楚:

npm install <git remote url>:

Installs the package from the hosted git provider, cloning it with git. First it tries via the https (git with github) and if that fails, via ssh.

    <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>]

<protocol> is one of git, git+ssh, git+http, or git+https.
npm安装:
从托管的git提供程序安装包,并使用git克隆它。首先,它通过https(git with github)进行尝试,如果失败,则通过ssh进行尝试。
://[[:]@][:][:][/][#]
是git、git+ssh、git+http或git+https中的一种。
这4个选项(git、git+ssh等)之间有什么不同

有关详细信息,请阅读

所有协议都协商了克隆/拉/推存储库所需的文件传输;它们的主要区别在于身份验证机制

git
这将直接与Git打包的守护进程进行对话——您只需旋转它并发送URL即可。它没有身份验证,所以您通常不希望允许推送(具有URL的每个人都可以推送),但这节省了开销,并且使它成为大规模公共分发(如NPM)的一个好选项

git+ssh
与git相同,只是通过SSH传输。您必须在服务器上设置SSH密钥,但麻烦的是,您需要进行身份验证和加密

git+http
这有两种模式,哑模式和智能模式

Dumb HTTP基本上是由标准web服务器提供服务的存储库,该存储库易于设置,但传输速度较慢,因为即使客户端只需要文件中的一个对象,客户端也必须执行提交并请求整个packfile。这种方式的服务是只读的,因为web服务器无法正确地接收文件

智能HTTP允许客户端请求特定对象,就像它对
git
git+ssh
所做的那样。然后,服务器可以制作一个定制的打包文件以发送回,这将更加高效。更智能的服务器现在也可以支持推送,不过您仍然需要对用户进行身份验证

git+https
git+http
相同,但是通过HTTPS,因此您可以获得身份验证和加密。git+ssh的好处在于,您可以使用简单的用户名和密码,而不必设置密钥对,这对许多用户来说都比较容易。

有关详细信息,请阅读

所有协议都协商了克隆/拉/推存储库所需的文件传输;它们的主要区别在于身份验证机制

git
这将直接与Git打包的守护进程进行对话——您只需旋转它并发送URL即可。它没有身份验证,所以您通常不希望允许推送(具有URL的每个人都可以推送),但这节省了开销,并且使它成为大规模公共分发(如NPM)的一个好选项

git+ssh
与git相同,只是通过SSH传输。您必须在服务器上设置SSH密钥,但麻烦的是,您需要进行身份验证和加密

git+http
这有两种模式,哑模式和智能模式

Dumb HTTP基本上是由标准web服务器提供服务的存储库,该存储库易于设置,但传输速度较慢,因为即使客户端只需要文件中的一个对象,客户端也必须执行提交并请求整个packfile。这种方式的服务是只读的,因为web服务器无法正确地接收文件

智能HTTP允许客户端请求特定对象,就像它对
git
git+ssh
所做的那样。然后,服务器可以制作一个定制的打包文件以发送回,这将更加高效。更智能的服务器现在也可以支持推送,不过您仍然需要对用户进行身份验证

git+https
git+http
相同,但是通过HTTPS,因此您可以获得身份验证和加密。git+ssh的好处在于,您可以使用简单的用户名和密码,而不必设置密钥对,这对许多用户来说都比较容易