Node.js 从git获取npm包的不同协议
来自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 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的好处在于,您可以使用简单的用户名和密码,而不必设置密钥对,这对许多用户来说都比较容易