在 Sonatype Nexus 上使用 NPM 访问 GitHub
Accessing GitHub using NPM on Sonatype Nexus
我们目前正在使用 Nexus 2.10,并已成功将其用作 npm 的存储库。
通过此 proxy/mirror 在本地构建工作正常,但是当尝试在 Bamboo(没有互联网访问权限)上 运行 npm install
时,它失败了,因为一些依赖尝试到达 GitHub 下载东西,但失败了。
error 06-feb-2015 13:29:29 npm http 200 https://nexus.shdir.no/content/groups/npm-all/mkdirp/-/mkdirp-0.3.0.tgz
error 06-feb-2015 13:29:30 npm http GET https://nexus.shdir.no/content/groups/npm-all/formidable
error 06-feb-2015 13:29:30 npm http 200 https://nexus.shdir.no/content/groups/npm-all/formidable
error 06-feb-2015 13:29:45 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:29:55 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:30:16 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:31:16 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:31:37 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:31:38 npm ERR! network connect ETIMEDOUT
error 06-feb-2015 13:31:38 npm ERR! network This is most likely not a problem with npm itself
error 06-feb-2015 13:31:38 npm ERR! network and is related to network connectivity.
error 06-feb-2015 13:31:38 npm ERR! network In most cases you are behind a proxy or have bad network settings.
error 06-feb-2015 13:31:38 npm ERR! network
error 06-feb-2015 13:31:38 npm ERR! network If you are behind a proxy, please make sure that the
error 06-feb-2015 13:31:38 npm ERR! network 'proxy' config is set properly. See: 'npm help config'
error 06-feb-2015 13:31:38
error 06-feb-2015 13:31:38 npm ERR! System Windows_NT 6.1.7601
error 06-feb-2015 13:31:38 npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install"
error 06-feb-2015 13:31:38 npm ERR! cwd E:\bamboo\UTV-FP-JOB1\code
error 06-feb-2015 13:31:38 npm ERR! node -v v0.10.17
error 06-feb-2015 13:31:38 npm ERR! npm -v 1.3.8
error 06-feb-2015 13:31:38 npm ERR! syscall connect
error 06-feb-2015 13:31:38 npm ERR! code ETIMEDOUT
error 06-feb-2015 13:31:38 npm ERR! errno ETIMEDOUT
我该如何解决这个问题?我是否必须将 github/bitbucket 中的每个存储库添加到 Nexus?
您必须使 Nexus 可用于您的 Bamboo 服务器并在那里配置 npm,就像您在工作站上所做的那样。根据可能需要不同步骤的网络拓扑安装 Bamboo 和 Nexus 的位置。
理想情况下,您的存储库管理器和 CI 服务器位于同一位置,并且彼此之间具有高性能连接。这允许快速下载代理包以及快速部署。
例如,您可以让您的 Nexus 在 public 互联网上可用,并将其锁定以仅允许经过身份验证的访问,然后像从 Bamboo 中那样使用它。
我们通过手动下载二进制文件并将它们添加到我们的 Apache 服务器解决了这个问题。更新依赖项时不会很有趣,但应该不会太糟糕。只有 3 个文件。
如果有人知道,我很乐意使用更好的解决方案。
我们目前正在使用 Nexus 2.10,并已成功将其用作 npm 的存储库。
通过此 proxy/mirror 在本地构建工作正常,但是当尝试在 Bamboo(没有互联网访问权限)上 运行 npm install
时,它失败了,因为一些依赖尝试到达 GitHub 下载东西,但失败了。
error 06-feb-2015 13:29:29 npm http 200 https://nexus.shdir.no/content/groups/npm-all/mkdirp/-/mkdirp-0.3.0.tgz
error 06-feb-2015 13:29:30 npm http GET https://nexus.shdir.no/content/groups/npm-all/formidable
error 06-feb-2015 13:29:30 npm http 200 https://nexus.shdir.no/content/groups/npm-all/formidable
error 06-feb-2015 13:29:45 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:29:55 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:30:16 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:31:16 npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:31:37 npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz
error 06-feb-2015 13:31:38 npm ERR! network connect ETIMEDOUT
error 06-feb-2015 13:31:38 npm ERR! network This is most likely not a problem with npm itself
error 06-feb-2015 13:31:38 npm ERR! network and is related to network connectivity.
error 06-feb-2015 13:31:38 npm ERR! network In most cases you are behind a proxy or have bad network settings.
error 06-feb-2015 13:31:38 npm ERR! network
error 06-feb-2015 13:31:38 npm ERR! network If you are behind a proxy, please make sure that the
error 06-feb-2015 13:31:38 npm ERR! network 'proxy' config is set properly. See: 'npm help config'
error 06-feb-2015 13:31:38
error 06-feb-2015 13:31:38 npm ERR! System Windows_NT 6.1.7601
error 06-feb-2015 13:31:38 npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install"
error 06-feb-2015 13:31:38 npm ERR! cwd E:\bamboo\UTV-FP-JOB1\code
error 06-feb-2015 13:31:38 npm ERR! node -v v0.10.17
error 06-feb-2015 13:31:38 npm ERR! npm -v 1.3.8
error 06-feb-2015 13:31:38 npm ERR! syscall connect
error 06-feb-2015 13:31:38 npm ERR! code ETIMEDOUT
error 06-feb-2015 13:31:38 npm ERR! errno ETIMEDOUT
我该如何解决这个问题?我是否必须将 github/bitbucket 中的每个存储库添加到 Nexus?
您必须使 Nexus 可用于您的 Bamboo 服务器并在那里配置 npm,就像您在工作站上所做的那样。根据可能需要不同步骤的网络拓扑安装 Bamboo 和 Nexus 的位置。
理想情况下,您的存储库管理器和 CI 服务器位于同一位置,并且彼此之间具有高性能连接。这允许快速下载代理包以及快速部署。
例如,您可以让您的 Nexus 在 public 互联网上可用,并将其锁定以仅允许经过身份验证的访问,然后像从 Bamboo 中那样使用它。
我们通过手动下载二进制文件并将它们添加到我们的 Apache 服务器解决了这个问题。更新依赖项时不会很有趣,但应该不会太糟糕。只有 3 个文件。
如果有人知道,我很乐意使用更好的解决方案。