Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
配置npm以使用artifactory作为npm注册表和github的代理来解析依赖关系_Github_Npm_Artifactory - Fatal编程技术网

配置npm以使用artifactory作为npm注册表和github的代理来解析依赖关系

配置npm以使用artifactory作为npm注册表和github的代理来解析依赖关系,github,npm,artifactory,Github,Npm,Artifactory,我有一个无法访问internet的构建服务器,我需要从github.com和registry.npmjs.org解析依赖关系。构建服务器可以访问Artifactory,因此我为registry.npmjs.org创建了一个NPM repo to proxy,这是可行的,我刚刚为github.com创建了一个VCS repo to proxy 我如何配置npm来解决这两个问题?由于这两种回购是不同的类型,我无法将它们聚合为一种虚拟回购。NPM是否可以配置为解决这两个方面的依赖关系?VCS回购与NP

我有一个无法访问internet的构建服务器,我需要从github.com和registry.npmjs.org解析依赖关系。构建服务器可以访问Artifactory,因此我为registry.npmjs.org创建了一个NPM repo to proxy,这是可行的,我刚刚为github.com创建了一个VCS repo to proxy


我如何配置npm来解决这两个问题?由于这两种回购是不同的类型,我无法将它们聚合为一种虚拟回购。NPM是否可以配置为解决这两个方面的依赖关系?

VCS回购与NPM依赖关系没有相关性。VCS repo只是远程git服务器上一组API的网关,这些API将帮助您缓存源二进制文件(即特定分支/标记的zip/tarball,甚至是版本)。npm客户端不熟悉Artifactory为此类repo公开的REST端点

对于在package.json中引用github repos的NPM包(请参见URL作为依赖项和Git URL作为依赖项部分),您需要查看Artifactory的

由于您的NPM客户端正在无法访问internet的计算机上运行,因此您自己的package.json文件不应直接依赖于“github依赖项”,因为这会使客户端绕过~/.npmrc中的注册表配置,直接转到github而不是Artifactory

当项目依赖项之一的package.json使用github依赖项,并且此包通过Artifactory解析时,依赖项重写机制会在将package.json返回到客户端之前动态修改它,以便后续通过Artifactory尝试解析此类依赖项的依赖项请求,而不是通过github——这非常适合像您这样的用例

总之,您应该特别使用Artifactory上的NPM存储库,但也要利用虚拟存储库的依赖项重写机制,以避免通过github直接解析依赖项


嗯,

谢谢!这正是我想要的。它确实是一个依赖项,而不是我自己的package.json,引用github。我没有意识到这些github deps的package.json中使用了完整的URL,因此我假设它是注册为另一个默认回购协议或其他东西,但没有通过registry.npmjs.org找到(我是npm的新手)。